На основании этого поста Я использовал команду:
ffmpeg -i input.mp4 -c: v dnxhd -vf "scale = 1280: 720, fps = 29.90, format =yuv422p "-b: v 110M -c: pcm_s16le output.mov
для преобразования файла mp4 в mov с помощью видеокодека dnxhd.Я также хочу аудиокодек pcm_s16le.
Здесь вы можете увидеть свойства входного файла:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'mexico-raw-combined.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf58.23.101
Duration: 00:49:59.01, start: 0.000000, bitrate: 17220 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 16961 kb/s, SAR 1:1 DAR 16:9, 29.90 fps, 29.92 tbr, 90k tbn, 180k tbc (default)
Metadata:
handler_name : VideoHandle
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 249 kb/s (default)
Metadata:
handler_name : SoundHandle
А вот свойства выходного файла:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mov':
Metadata:
major_brand : qt
minor_version : 512
compatible_brands: qt
encoder : Lavf58.12.100
Duration: 00:49:59.01, start: 0.000000, bitrate: 111235 kb/s
Stream #0:0(eng): Video: dnxhd (DNXHD) (AVdn / 0x6E645641), yuv422p(tv, bt709/unknown/unknown), 1280x720, 109733 kb/s, SAR 1:1 DAR 16:9, 29.90 fps, 29.90 tbr, 19136 tbn, 19136 tbc (default)
Metadata:
handler_name : DataHandler
encoder : Lavc58.18.100 dnxhd
Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
Metadata:
handler_name : DataHandler
Проблема заключается в том, что ближе к концу выходного файла (имейте в виду, что это 50-минутное видео), звук заканчивается немного раньше, а последние ~ 1 минута 10 секунд по какой-то причине молчат.
Также обратите внимание, что я выбрал частоту кадров 29,9 кадров в секунду, потому что именно это использует входной файл.