FFMPEG组合具有相同编码的MP4视频不起作用,仅显示第一个视频

时间:2020-04-05 08:50:12

标签: video ffmpeg

我的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,答案表明我正在使用这些答案:具体来说,是从包含分量视频的文本文件中提取内容。

1 个答案:

答案 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)不同,则播放速度将不正确,并且总持续时间将是错误的。音频同步也将丢失。