ffmpeg 文件切片合并

最近再作m3u8切片合并下载的小功能,由于要合并成mp4,因此考虑用ffmpeg来搞,mp4格式忒复杂了。this

查了下文档ffmpeg支持concat demux和concat protocol.spa

用法以下:code

ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg //这个是concat protocal,这个命令只支持一部分视频格式 如mpeg1,2 mpegts,不支持flv,mp4

mylist.txt:
# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

ffmpeg -f concat -i mylist.txt -c copy output //这个是运用concat demux,和前面的命令有些不一样,这个会把demux文件而后re-encode切片文件,因此只要ffmpeg支持的格式,这个命令都管用。

开始以为这俩个命令功能是同样的。实验了第一个命令 flv无论用,只输出了第一片的flv。查了下官方文档找到这一段:

The flv container format doesn't support file-level concatenation; only a
few container file types do. So the concat protocol won't work on them.

The concat demuxer, as its name suggests, demuxes the input streams from
their container and then concatenates them, so it doesn't care about what
the input container is (and if the codecs are all the same w/ similar
characteristics, you can actually concatenate files of different container
formats).


参考:How to concatenate (join, merge) media files
ffmpeg wiki
相关文章
相关标签/搜索