基于this post,我使用了以下命令:
ffmpeg -i input.mp4 -c:v dnxhd -vf“ scale = 1280:720,fps = 29.90,format = yuv422p” -b:v 110M -c:a pcm_s16le output.mov
使用dnxhd视频编解码器将mp4文件转换为mov。我也想要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 fps的帧速率,因为这是输入文件使用的帧速率。