1, 截取視頻的點
ffmpeg -i 1.mp4 -ss 00:01:00 -to 00:01:10 -acodec copy c1.mp4
要截取時間單位的起點和終點
也可以
ffmpeg -i 1.mp4 -ss 00:01:00 -t 10 -acodec copy c1.mp4
第二個要比第一個速度快,但是不保證正確
第三個速度快且能保證正確率。
2 把多個視頻連接成一個視頻的操作 ,這里把1.mp4 和2.MP4 合并
ffmpeg -i "concat:1.mp4|2.mp4" -c copy o2.mp4
3 截取合并視頻的工具也可以使用 Avidemux
橫向合并視頻
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi hstack output.mp4
上面的命令雖然可以合并視頻虎敦,兩個視頻可以正常播放,但是只保留了前面一個的音頻政敢。
下面會介紹怎么避開這個坑其徙。
注意這時候input1和input2必須同樣的高度,如果不一樣的高度可以使用-shortest參數來保證同樣的高度喷户。
如果希望合并多個視頻唾那,可以使用下面命令行。
ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4
其中input=3表示希望合并的視頻的個數
縱向合并視頻
ffmpeg -i input1.mp4 -i input2.mp4 -lavfi vstack output.mp4
網格合并視頻
當多個視頻時褪尝,還可以合并成網格狀闹获,比如2x2,3x3這種河哑。但是視頻個數不一定需要是偶數避诽,如果是奇數,可以用黑色圖片來占位璃谨。
ffmpeg -f lavfi -i color=c=black:s=1280x720 -vframes 1 black.png
該命令將創(chuàng)建一張1280*720的圖片
然后就可以使用下面這個命令來合并成網格視頻了沙庐,如果只有三個視頻,可以選擇上面創(chuàng)建的黑色圖片替代睬罗。
ffmpeg -i top_left.mp4 -i top_right.mp4 -i bottom_left.mp4 -i bottom_right.mp4
-lavfi "[0:v][1:v]hstack[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack"
-shortest 2by2grid.mp4
上面創(chuàng)建的是正規(guī)的2x2網格視頻轨功。想象一下,現在只有三個視頻容达,我想把第一個視頻擺放在第一行的中間古涧,然后把第二、三個視頻擺放在第二行花盐。那么就可以使用下面兩個命令了羡滑。
ffmpeg -f lavfi -i color=c=black:s=640x720 -vframes 1 black.png
ffmpeg -i black.png -i top_center.mp4 -i bottom_left.mp4 -i bottom_right.mp4
-lavfi "[0:v][1:v][0:v]hstack=inputs=3[top];[2:v][3:v]hstack[bottom];[top][bottom]vstack"
-shortest 3_videos_2x2_grid.mp4
合并音頻和視頻
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4
如果視頻中已經包含了音頻菇爪,這個時候還可以替換視頻中的音頻,使用下面命令行柒昏。
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental
-map 0:v:0 -map 1:a:0 output.mp4
合并兩個音頻
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amerge -ac 2 -c:a libmp3lame -q:a 4 output.mp3
獲取視頻中的音頻
ffmpeg -i input.mp4 -vn -y -acodec copy output.m4a
去掉視頻中的音頻
ffmpeg -i input.mp4 -an output.mp4
現在介紹凳宙,怎么合并兩個視頻并保留兩個視頻中的音頻。也就是抖音中的合拍功能职祷。
1.合并兩個視頻氏涩,但是發(fā)現只有一個聲音。無所謂有梆。
2.抽取兩個視頻中的音頻是尖,然后合并成一個音頻。
3.將這個音頻替換到之前的合并視頻中泥耀。
4.ok了饺汹。
5.可以使用ffplay播放了。
1 多個mp3文件合并成一個mp3文件
一種方法是連接到一起
ffmpeg.exe -i "concat:123.mp3|124.mp3" -acodec copy output.mp3
解釋:-i代表輸入參數
contact:123.mp3|124.mp3代表著需要連接到一起的音頻文件
-acodec copy output.mp3 重新編碼并復制到新文件中
另一種方法是混合到一起
ffmpeg.exe -i 124.mp3 -i 123.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 remix.mp3
解釋:-i代表輸入參數
-filter_complex ffmpeg濾鏡功能痰催,非常強大兜辞,詳細請[查看文檔](http://ffmpeg.org/ffmpeg.html)
amix是混合多個音頻到單個音頻輸出
inputs=2代表是2個音頻文件,如果更多則代表對應數字
duration 確定最終輸出文件的長度
longest(最長)|shortest(最短)|first(第一個文件)
dropout_transition
The transition time, in seconds, for volume renormalization when an input stream ends. The default value is 2 seconds.
-f mp3 輸出文件格式
2 音頻文件截取指定時間部分
ffmpeg.exe -i 124.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:32 output.mp3
解釋:-i代表輸入參數
-acodec copy output.mp3 重新編碼并復制到新文件中
-ss 開始截取的時間點
-t 截取音頻時間長度
3 音頻文件格式轉換
ffmpeg.exe -i null.ape -ar 44100 -ac 2 -ab 16k -vol 50 -f mp3 null.mp3
解釋:-i代表輸入參數
-acodec aac(音頻編碼用AAC)
-ar 設置音頻采樣頻率
-ac 設置音頻通道數
-ab 設定聲音比特率
-vol <百分比> 設定音量
- 使用簡單的 ffmpeg 命令批量合并視頻文件
先看看要合并的視頻文件
合并視頻文件前還需要一個txt文件夸溶,里面是要合并的視頻文件列表(按要合并的順序排列)逸吵。
文件內容的格式為 file ‘文件名稱’ 看圖
然后在 cmd 窗口進入視頻所在的目錄,輸入下列命令即可合并視頻(兩分鐘左右就好了)
ffmpeg -f concat -i 1.txt -c copy output.mp4
1.txt 即是之前存要合并的視頻文件列表的 txt 文件
output.mp4 是要輸出的文件名