ffmpeg對視頻封裝和分離


使用ffmpeg對視頻封裝和分離分離
分離
比如你的文件是 video+audio.mp4
分離視頻出來:ffmpeg -i video+audio.mp4 -vcodec copy -an video.mp4
分離音頻出來:ffmpeg -i video+audio.mp4 -acodec copy -vn Audio.mp3

封裝

如果視頻流.avi里面的視頻編碼本身是mpeg4就:
ffmpeg -i 視頻流.avi -i 音頻流.mp3 -vcodec copy -acodec copy 合並.mp4 

如果 視頻流.avi里面的視頻編碼不是mpeg4,而你又想得到mp4就:
ffmpeg -i 視頻流.avi -i 音頻流.mp3 -vcodec mpeg4 -acodec copy 合並.mp4 

--其他命令見下文,僅供參考,里邊有一些是錯的,還沒時間整理

http://blog.csdn.net/weiyuefei/article/details/51678582

 http://www.cnblogs.com/dwdxdy/p/3240167.html

在使用hls技術播放視頻流時,首先要把視頻轉換為ts片和一個m3u8播放列表,使用ffmpeg進行該轉換時(低版本ffmpeg不支持直接轉,只能現在轉換成ts,再用m3u8-segmenter切片,筆者使用的是ffmpeg version-2.1.2),通常使用如下命令:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls output.m3u8

但是在此狀態下,默認的每片長度為2秒,m3u8文件中默認只保存最新的5條片的信息,導致最后播放的時候只能播最后的一小部分。

實際上還有一些其他參數可以控制這些內容:

-hls_time n: 設置每片的長度,默認值為2。單位為秒

-hls_list_size n:設置播放列表保存的最多條目,設置為0會保存有所片信息,默認值為5

-hls_wrap n:設置多少片之后開始覆蓋,如果設置為0則不會覆蓋,默認值為0.這個選項能夠避免在磁盤上存儲過多的 片,而且能夠限制寫入磁盤的最多的片的數量

-hls_start_number n:設置播放列表中sequence number的值為number,默認值為0

注意:播放列表的sequence number 對每個segment來說都必須是唯一的,而且它不能和片的文件名(當使用wrap選項時,文件名有可能會重復使用)混淆


免責聲明!

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



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