我有 2 个视频,可能有不同的分辨率、编解码器等。
第一个是原始视频,第二个是outro。
我需要使用 linux cli 命令将它们连接在一起。
我试过这样做:
ffmpeg -safe 0 -f concat -segment_time_metadata 1 -i test.txt -vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1 out.mp4
但它只有在我将 outro 放在文本文件的开头时才能正常工作,否则会有一些黑屏秒而不是 outro。
如果您想以大多数播放器可以播放的方式连接两个不同分辨率和/或编解码器的视频,则必须重新编码为通用分辨率和编解码器。
我建议您单独重新编码,然后使用
concat
格式实际合并它们,但您也可以一次性连接和重新编码。在这种情况下,您需要在命令行中添加编解码器 (-c:v
和),并根据需要添加(与编解码器相关的)参数。-c:a
确保两个视频都有音频:
如果一个视频(例如“outro.mov”)没有音频流,ffmpeg 将抛出错误
Stream specifier ':a' in filtergraph description matches no streams.
如果您对处理音频等的更高级方法感兴趣,请查看我的详细描述。