video - FFMPEG将具有相同编码的MP4视频组合起来不起作用,只显示第一个视频
问题描述
我的 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:组合/合并多个 mp4 视频不起作用,输出仅包含第一个视频,并且建议的答案是我正在使用的那些:具体来说,从包含组件视频的文本文件中连接。
解决方案
示例文件中的音频流不匹配。
输出1.mp4:
Audio: aac (LC) (mp4a / 0x6134706D), 24000 Hz, mono, fltp, 112 kb/s (default)
视频静态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
)不同,则播放速度将不正确,总时长将错误。音频同步也将丢失。
推荐阅读
- python - 为什么这个程序不交换输入列表的第一项和最后一项?
- python - SumOfLongRootToLeafPath 函数返回的值如何
- fo-dicom - 我可以通过 FO-DICOM 中的登录号查询 MWL(Modality Worklist)吗?
- javascript - git merge - 成功合并后文件仍然“脏”
- python - Dash 应用程序 - 是否可以将用户当前的所有选择导入/导出到文件?
- javascript - 最佳实践 - 将值保存在客户端,或将它们与请求一起发送以通过服务器响应检索回来
- android - Flutter 计算器应用程序 - 如何在没有右括号的情况下进行计算?
- angular - matTooltip 未显示在对话框窗口中
- mongodb - Or 语句只返回第一个结果(应该是 2)
- gnome - gnome MATE 桌面环境 alt_L 键重新映射