免費批次轉檔MP4:影音轉檔工具 ffmpeg,免費影片轉檔後製工具
ffmpeg 是一套免費且開源的影片轉檔後製工具,幾乎你能想到的影音編輯功能他都有,當然免費批次轉檔MP4絕對是輕輕鬆鬆地。可以說是沒有他辦不到的只有你做不到的。為什麼這麼說呢!因為它主要的操作方式是透過 Terminal CMD 的方式使用的,因此沒有直覺的 UI 介面,沒有實時的結果預覽,因此學習曲線還算挺高的。
因此本文將 ffmpeg 中較常用的功能指令紀錄下來,以期能降低 ffmpeg 的學習困難度,並提升大家對於開源工具的興趣,希望能為開源的世界帶來一點點的貢獻。
影片格式轉換
ffmpeg -i "input.mkv" "output.mp4" # 副檔名可以換成不同的檔案格式
擷取影片聲音檔
ffmpeg -i "input.mp4" -vn -acodec libmp3lame -q:a 0 "output.mp3"
添加字幕檔
添加字幕檔有兩種方式,一為 內封字幕;二為 內嵌字幕。兩者的差異為:
- 內封字幕|將字幕資料封入影片檔案中,需要撥放器支援解讀,但是可以隨時提取字幕資料出來。
- 內嵌字幕|將字幕資料像圖案一樣疊在影片上,形成新的影片。因此不需要撥放器支援字幕解讀,反之因為字幕已經變成了圖片,因此無法提取。
# 內封字幕檔
ffmpeg -i "input.mkv" -i "input-subtitle.srt" "output.mp4"
# 內嵌字幕檔
ffmpeg -i "input.mkv" -vf "subtitles='input-subtitle.srt'" "output.mp4"
擷取片段
# -ss 開始時間點,-t 持續時間
# .mp4 可以替換成任何影片副檔名或是聲音副檔名 e.g. .mp3
ffmpeg -i "input.mp4" -ss hh:mm:ss -t hh:mm:ss "output.mp4"
擷取每一幀的畫面
# %d 為 index number,auto increase
ffmpeg -i "input.mp4" "output-%d.bmp"
批次處理
# 以 批次將資料夾內含有 .mkv 副檔名的檔案轉換成 .mp4 格式 為例
# 可任意替換 do 後方的 ffmpeg 指令來執行不同事件
# /r 為連子資料夾都搜尋,若只想搜尋當前資料夾可以不寫此指令
# %~nA 為顯示不含副檔名的檔名
# 可任意替換 .mkv 及 .mp4 來決定輸入/輸出格式
for /r %A in (*.mkv) do ffmpeg -i "%~nA.mkv" "%~nA.mp4"
# 內嵌 .mkv 跟 .ass字幕檔 並輸出成 .mp4
for /r %A in (*.mkv) do ffmpeg -i "%~nA.mkv" -vf "subtitles='%~nA.ass'" "%~nA.mp4"
可以先使用以下命令句查看預期出來的指令
for /r %A in (*.mkv) do @echo ffmpeg -i "%~nA.mkv" "%~nA.mp4"
原文連結Leo Studio