Eu sei que esta é uma questão antiga, no entanto, isso funcionou para mim como uma opção para o ffmpeg: -use_wallclock_as_timestamps 1
Estou gravando o vídeo MJPEG de uma câmera IP e salvando-o em um arquivo, mas o problema é que a duração do arquivo é muito menor que o tempo real de gravação. Seu vídeo de cerca de 9 segundos para gravação de 2 minutos. Eu tentei seguir os comandos na ordem
ffmpeg -f mjpeg -r 8 -i http://c-cam.uchicago.edu/mjpg/video.mjpg -vcodec mpeg4 -b 1000000 -r 8 video_file.avi
Então omiti a maioria das bandeiras e tentei assim
ffmpeg -f mjpeg -i http://c-cam.uchicago.edu/mjpg/video.mjpg video_file.avi
Mas o problema é que a duração do arquivo gravado é de 9 segundos, onde o tempo real de gravação é de cerca de 2 minutos. Eu finalmente tentei o filtro setpts que deveria inserir os timestamps. O comando é o seguinte
ffmpeg -f mjpeg -i http://c-cam.uchicago.edu/mjpg/video.mjpg -vf "setpts=1*PTS" video_file.avi
Mas o resultado ainda era o mesmo. O tempo de gravação foi muito mais do que a duração do vídeo.
Eu sei que esta é uma questão antiga, no entanto, isso funcionou para mim como uma opção para o ffmpeg: -use_wallclock_as_timestamps 1
Eu tive um problema semelhante e a opção -re
resolveu isso para mim. Isso diz ao ffmpeg
para agir como um capturador de quadros agiria.
Tags video ffmpeg video-streaming mjpeg