繁体   English   中英

ffmpeg:连接视频和音频文件

[英]ffmpeg: concat video and audio files

如果某些文件是带音频的视频而某些仅是音频文件,是否可以连接多个文件。 最终结果应如下所示:

--------------------------------------------------------
|###(v/a)### | ### (a) ### | ### (a) ### | ###(v/a)### |
--------------------------------------------------------

v/a: video + audio
a  : audio only (blank screen)

我尝试使用以下命令来做到这一点:

ffmpeg 
-i chunk1.mp4 
-i chunk2.m4a 
-i chunk3.mp4
-filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a]"
-map "[v]" -map "[a]" -strict -2 result.mp4

因此,我尝试仅使用来自输入 1 ( [1:a:0] ) 的音轨,但不幸的是,我收到此错误消息:

Stream specifier ':v:0' in filtergraph description [0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a] matches no streams.

我认为这一定是可能的,因为我还可以将大音频文件和小视频与 ffmpeg 结合起来。 结果将是一个视频文件,其中最后一帧只是冻结,但音频仍在播放。 我想用冻结的最后一帧或简单的黑帧来达到相同的结果。 这可能吗?

对于 Q 中给出的命令,使用

ffmpeg -i chunk1.mp4 -i chunk2.m4a -i chunk3.mp4 -filter_complex \
       "color=black:s=WxH:r=N:d=T[1v]; \
       [0:v:0] [0:a:0] [1v] [1:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a]"
-map "[v]" -map "[a]" -strict -2 result.mp4

其中WxH是视频的分辨率, N是帧率, T是音频文件的持续时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM