ffmpeg 文件切片合並


最近再做m3u8切片合並下載的小功能,因為要合並成mp4,所以考慮用ffmpeg來搞,mp4格式忒復雜了。

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

用法如下:

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




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM