2019年5月21日 星期二

FFmpeg 影片轉檔與字幕

下載影片通常為MKV或MP4,Windows Media Player(簡稱WMP)沒有安裝MKV解碼器無法播放MKV,而MP4也不見得能於WMP順暢播放。FFmpeg 能轉成MP4檔供所需(轉檔非常耗時間),更可使用USB隨身碟將轉檔後的MP4複製,插入電視USB播放。也可使用Windows媒體櫃播放至電視。轉檔後部分影片展示 https://youtu.be/p26x1rBEsEg

電視播放USB隨身碟注意事項(底下是Sony BRAVIA的資料,您的電視也須先查清楚):
1. USB 儲存裝置 (FAT32不可儲存大於4G檔案)
2. USB 裝置支援的編碼解碼器

FFmpeg 跨平台(Linux,Windows,Mac),下載處 https://ffmpeg.org/download.html。FFmpeg 使用命令列轉檔,建議以文字編輯器 Notepad++Geany 編輯命令再貼於命令列。雖然有格式工廠(FormatFactory)影片轉檔工具,我個人比較偏愛 FFmpeg。

MKV轉為所有裝置皆能播放的MP4:
ffmpeg -i input.mkv -c:v libx264 -pix_fmt yuv420p -profile:v baseline -level 3 -c:a aac -strict -2 -ac 2 output.mp4
Note:-ac 2,聲道2(Stereo)。有些影片設置聲道7,結果SONY電視播放時沒聲音。若MP4無法於 WMP 順暢播放,可以利用上面方法轉檔!

嵌入(embed)字幕:
ffmpeg -i input.mkv -i subtitle.srt -c copy output.mkv
Note:這方法需要播放器支援字幕切換,WMP不適用。

可採用將字幕直接燒入(burn in)影片,並指定字體及其大小與顏色:
ffmpeg -i input.mp4 -vf "subtitles=subtitle.srt:force_style='FontName=標楷體,Fontsize=24,PrimaryColour=&H0000ff&'" -c:a aac -strict -2 -ac 2 output.mp4
Note:
1. 字幕檔srt必須UTF-8編碼,Fontsize不要太大以免超出螢幕,可以省略FontName設定。Notepad++或Geany很容易將字幕檔轉存成UTF-8編碼。
2. 0000ff 為紅色

【實例】
SMPlayer播放器取得 MKV檔資訊 1920x820, 24FPS,轉成MP4如下:
因 Sony 電視僅支援 1920x1080@30fps 及 1280x720@60fps,而 1280x720 較節省硬碟,所以解析度改成 1280x720,-r 24 為 24FPS,大部分原始檔MKV都是此設定值,因此沿用
ffmpeg -i input.mkv -c:v libx264 -pix_fmt yuv420p -preset slower -profile:v baseline -level 3 -aspect 16:9 -vf "subtitles=subtitle.srt:force_style='FontName=標楷體,Fontsize=26,PrimaryColour=&H0000ff&',scale='w=1280:h=720'" -c:a aac -strict -2 -ac 6 output.mp4

轉檔非常耗時間,因此我都設定時間或取1000張,SMPlayer測試播放效果
1. ffmpeg -ss 00:00:00 -i input.mp4 -t 00:00:15 -c copy output.mp4
2. ffmpeg -i input.mp4 -frames 1000 -c copy output.mp4

當影片太大或時間超過2小時20分,SONY電視於播出27分後,可能出現「播放無效」導致停止,因此須複製成兩個檔案:
ffmpeg -y -ss 00:00:00 -i input.mp4 -t 02:20:20 -c:v copy output1.mp4
ffmpeg -y -ss 02:20:00 -i input.mp4 -c:v copy output2.mp4

參考資料:
1. [FFmpeg] 烙印(Hardsub)字幕至影像上
2. 設定 DLNA | Sony 教學影片
3. 在Sony BRAVIA 液晶電視上觀賞透過 HDMI 連接之 Windows 8 電腦上的影片
4. 智慧型手機或平板電腦,透過 Media Remote 應用程式,以 WiFi 無線網路操控 Sony
5. 電視觀看電腦內影片
6. 使用 FFmpeg 轉檔影片格式

沒有留言:

張貼留言