這篇是分享我會用到的裝置的轉檔食譜。
iPod
轉iPod很簡單,把x264 profile設成Baseline就好了。
- 代碼: 選擇全部
cvlc -vvv -I dummy --no-video \
--sout-transcode-vcodec h264 --sout-transcode-venc x264 \
--sout-transcode-width <影片寬度> --sout-transcode-height <影片高度> \
\
--sout-x264-profile Baseline --sout-x264-level 3 \
--sout-x264-vbv-maxrate 1536 --sout-x264-vbv-bufsize 1024 \
--sout-x264-crf 20 \
\
--sout-transcode-acodec mp4a --sout-transcode-ab 160 \
<來源檔名> --sout "#transcode:std{mux=mp4,dst=<輸出檔名>}" \
vlc://quit
<影片寬度>最大到640
<影片高度>最大到480
AppleTV
AppleTV的格式橋了好久... 因為AppleTV雖然號稱支援h264 Main Profile,但是很多功能都不能用,實驗了很多次不同的設定才弄出下面的設定。
基本上,AppleTV不支援CABAC和B-Frame。雖然說Doom 9上的資料都說AppleTV支援到最多2個B-Frame,但是我轉的影片只要有開B-Frame都會有一直跳針的畫面=_=,而關掉以後就沒事了。
另外,雖然Doom 9上的資料說不支援,但我實驗的結果是AppleTV支援8x8DCT。在這個食譜裡面8x8DCT是關閉的,但你要開的話可以試試看。
最後就是影片的bit rate,雖然Apple官網說只支援到160 kbps,但是設定到256 kbps甚至320 kbps不是問題,不過這是在只有2個頻道的情況下就是了。
- 代碼: 選擇全部
cvlc -vvv -I dummy --no-video \
--sout-transcode-vcodec h264 --sout-transcode-venc x264 \
--sout-transcode-width <影片寬度> --sout-transcode-height <影片高度> \
\
--sout-x264-profile Main --sout-x264-level 3.1 \
--sout-x264-vbv-maxrate 2560 --sout-x264-vbv-bufsize 2048 \
--sout-x264-crf 20 --no-sout-x264-cabac \
--sout-x264-partitions normal --no-sout-x264-8x8dct \
--sout-x264-me umh --sout-x264-subme 7 \
--no-sout-x264-psnr --sout-x264-bframes 0 \
--sout-x264-ref 2 --sout-x264-b-adapt 0 \
--no-sout-x264-weightb --sout-x264-weightp 0 \
--sout-x264-bpyramid none \
\
--sout-transcode-acodec mp4a --sout-transcode-ab 256 \
<來源檔名> --sout "#transcode:std{mux=mp4,dst=<輸出檔名>}" \
vlc://quit
<影片寬度>最大到960 (30 fps)或1280 (24 fps)
<影片高度>最大到560 (30 fps)或720 (24 fps)
iPad
基本上很多AppleTV用不了的設定全部解禁了,雖然B-frame還是用不了,但是CABAC跟8x8DCT可以很放心的使用。說真的要不是iPad不能用Component輸出720P影片,不然我實在不知道我幹麼還要留著AppleTV...
- 代碼: 選擇全部
cvlc -vvv -I dummy --no-video \
--sout-transcode-vcodec h264 --sout-transcode-venc x264 \
--sout-transcode-width <影片寬度> --sout-transcode-height <影片高度> \
\
--sout-x264-profile Main --sout-x264-level 3.1 \
--sout-x264-vbv-maxrate 2560 --sout-x264-vbv-bufsize 2048 \
--sout-x264-crf 20 --sout-x264-cabac \
--sout-x264-partitions normal --sout-x264-8x8dct \
--sout-x264-me umh --sout-x264-subme 7 \
--no-sout-x264-psnr --sout-x264-bframes 0 \
--sout-x264-ref 2 --sout-x264-b-adapt 0 \
--no-sout-x264-weightb --sout-x264-weightp 0 \
--sout-x264-bpyramid none \
\
--sout-transcode-acodec mp4a --sout-transcode-ab 160 \
<來源檔名> --sout "#transcode:std{mux=mp4,dst=<輸出檔名>}" \
vlc://quit
<影片寬度>最大到1280
<影片高度>最大到720
食譜使用說明
首先,用這食譜需要安裝VLC (好像是廢話?)。我用的VLC版本是1.10,但理論上這個食譜可套用於1.00+。
指令最前面的「cvlc」是vlc指令的路徑。在OS X底下是/Applications/VLC.app/Contents/MacOS/VLC,在Windows底下是C:\Program Files\VideoLan\VLC\vlc.exe。
這個食譜每行行尾的斜線(\)是Bash介面的底下把太長的指令分成不同行的字元。如果你用DOS,就要把\給刪除然後把所有指令放到同一行。
最後,以下是幾個常用的選項:
--start-time <起始時間> --stop-time <結束時間>
這兩個選項在測試新的食譜或是擷取影片一小段的時候很好用。
--daemon
在背景執行,這指令在Linux上轉檔的時候很實用。
--sout-transcode-fps <fps>
設定轉檔的fps。
July 26, 2010更新
在影片檔裡面,iPad最多只吃160 kbps的AAC音效,而Apple TV則可以上到256 kbps沒問題... =_=|||
終於發現一個地方Apple TV比iPad強了...
July 28, 2010更新
iPad只吃48khz的音效,所以不是的話就會沒有聲音喔...
解決辦法可以很麻煩也可以很簡單,端看VLC版本支不支援轉換採樣頻率,如果支援的話用--sout-transcode-samplerate 48000設定即可。不支援的話,就要另尋他法了...