Как сделать ffmpeg.exe решить несогласованные кадров в секунду для входной последовательности кадров?

Теперь мы используем ffmpeg.exe для преобразования последовательности изображений из IPCAM для вывода видео H. 264 на C#. Здесь мы устанавливаем fps выходного видео для ffmpeg.exe как 10 кадров. Однако fps последовательности изображений от IPCAM не фиксируется. Когда-то, это больше, чем 10fps, когда-то это меньше, чем 10fps. Из-за этого длина записанного видео не является точной один час, если мы используем ffmpeg.exe для записи данных в течение одного часа. Пожалуйста, сообщите нам, какие параметры или команды ffmpeg.exe может сделать ffmpeg.exe решает это несоответствие автоматически. Спасибо за помощь.

1 ответ

  1. Попробуйте эти две команды:

    ffmpeg.exe -y -f rawvideo -vcodec rawvideo -s WxH -pix_fmt rgb24 -i \.\pipe\" + pipename -vsync 0 -r 10 -an -b:v bitrate -vcodec h264_qsv -preset veryslow filename.mkv
    
    
    ffmpeg.exe -y -f rawvideo -vcodec rawvideo -s WxH -pix_fmt rgb24 -use_wallclock_as_timestamps 1 -i \.\pipe\" + pipename -vsync 0 -r 10 -an -b:v bitrate -vcodec h264_qsv -preset veryslow -fflags +genpts filename.mkv
    

    Не меняйте расширение на MP4. Если любой из вышеуказанных работ, мы можем после этого mux MKV к MP4.

    ffmpeg.exe file.mkv -c copy file.mp4