我的mp4视频具有相同的编码:h264
我知道是因为我对他们执行了以下命令:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 a.mp4
现在,我使用以下命令将它们组合在一起:
ffmpeg -loglevel quiet -f concat -safe 0 -i video-list.txt -c copy video-final.mp4
我的video-list.txt文件如下:
file 'a.mp4'
file 'b.mp4'
file 'c.mp4'
现在,作为组合视频的video-final.mp4实际上具有的时长等于其组成视频的总和,并且其大小也相当大。问题是,当我播放视频时,它只会播放第一个视频,然后停止播放。
这是怎么回事?任何见识将不胜感激。
我看过:ffmpeg: Combine/merge multiple mp4 videos not working, output only contains the first video,答案表明我正在使用这些答案:具体来说,是从包含分量视频的文本文件中提取内容。
答案 0 :(得分:1)
示例文件中的音频流不匹配。
output1.mp4:
Audio: aac (LC) (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 112 kb/s (default)
vide-static-final.mp4:
Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 155 kb/s (default)
采样率和通道布局不匹配。其中一个应转换为与另一个匹配。
对于音频,编解码器(aac
),编解码器配置文件(LC
),采样率或频率(48000 Hz
),通道布局(stereo
)和样本格式( fltp
)应该匹配。比特率并不重要。
Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 640x360, 1365 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
对于视频,编解码器(h264
),配置文件(High 4:4:4 Predictive
),像素格式(yuv444p
)和分辨率(640x360
)应该匹配。如果时间刻度(12800 tbn
)不同,则播放速度将不正确,并且总持续时间将是错误的。音频同步也将丢失。