FFmpeg的使用

1. 使用FFmepg快速切割視頻

優點:速度夠快
缺點:如果切割的時間點不屬於關鍵幀則會出現切割的視頻開始部分停頓幾秒
命令如下:

ffmpeg -i input.mkv -ss startTime -to endTime -c:v copy -c:a copy out.mkv

其中statTime和endTime是形如:00:10:00這樣的格式。-c:v copy -c:a copy代表複製原視頻的視頻和音頻編碼不做任何改變。
如果希望最後獲得的視頻正常則需要重新編碼,如下:

   ffmpeg -i input.mkv -ss startTime -to endTime -c:v libx264 out.mkv

上述命令將最後輸出的視頻採用H.264編碼重新編碼。

2. map指定分割視頻的音頻、視頻、字幕流

假設我們有一視頻,現在需要複製它的視頻流和字幕,將音頻流按照MP3和acc分別編碼,最後將這兩個音頻流壓縮到輸出視頻中。

ffmpeg -i input.mkv \
-map 0:0 -map 0:1 -map 0:1 -map 0:3 \
    -c:v copy \
    -c:a:0 libmp3lame -b:a:0 128k \
    -c:a:1 libfaac -b:a:1 96k \
    -c:s copy \
    output.mkv`

其中-map 指定了需要使用的流。

3. 使用FFmpeg命令獲取視頻中的字幕(軟字幕)

 a.查看視頻的信息
  ffmpeg -i input.mkv     

演示圖
從上圖可以看到該視頻有5個stream,其中stream 0是視頻流,stream 1是audio,剩下的幾個都是字幕流。

ffmpeg -i Movie.mkv -map 0:s:0 subs.srt   //該命令會自動搜索字幕

4. 將字幕嵌入到視頻中

方法1. 硬字幕嵌入(寫入到視頻幀中,能播放視頻的即可顯示字幕)

ffmpeg -i video.mkv -vf subtitles=subtitle.srt -codec:a copy output.mkv

方法2. 軟字幕(也即需要播放器支持字幕信息)

ffmpeg -i video.mkv -i subtitle.srt -codec copy -map 0 output.mkv
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章