短い (3:46) ビデオ用にカスタム メイドの字幕ファイル (Advanced SubStation Alpha) を「焼き付け」ようとしています。しかし、さまざまなコマンド ライン オプションを試したにもかかわらず、VLC は常にビデオの最後を切り取ってしまうようです。パラメータに応じて、数秒から最大 1:05 程度まで切り取られます。
私が試したコマンドの基本的な形式は次のとおりです。
vlc -v tdcutb.mp4 --run-time 300 --sub-file=tdcutb2.ass \
--sub-track=1 -I rc --sout-transcode-threads 8 --sout \
'#transcode{venc=x264'\
'{crf=15,keyint=50,no-mixed-refs,ref=4,subme=7,weightp=2,me=umh},'\
'vcodec=mp4v,vb=4096,acodec=mpga,ab=128,soverlay}'\
':standard{mux=mp4,dst=tdcutb-sub.mp4,access=file}' vlc://quit
さまざまな--run-time
値(完全に省略することも)と、さまざまな x264 パラメータ(crf の有無を 10 ~ 25、keyint を 10 ~ 250、ref を 1 ~ 4、subme を 0 ~ 7、weightp を 0 ~ 2 の値で指定)をいじってみました。また、vb の調整も試しました。
値を下げると全長に「近づく」傾向があることがわかりましたがkeyint
、値が100未満になるとファイルサイズがとんでもない大きさになり、まだフル レングスになりません。奇妙なことに、縮小するsubme
と少しは改善されるようですが、フル レングスの出力が得られず、品質が低下します。
ちなみに、私は Mac OS X 10.9.4 と VLC メディア プレーヤー 2.1.0 Rincewind (リビジョン 2.1.0-0-gedd8835) を実行しています。
編集: さまざまなエンコーダ (venc=ffmpeg)、さまざまなコーデック (codec=VP80)、さまざまなマルチプレクサー (ffmpeg/webm) も試してみましたが、いずれも程度の差はあれ失敗しました (最もひどいものは 0:39 のビデオを出力しました)。これは VLC に特に関係していることはほぼ確実です。
編集2: 最初に ffmpeg を使用して WebM へのトランスコードを試みましたが、問題なく完了しました (生成されたビデオの長さも適切でした)。しかし、VLC を使用して ffmpeg から取得した WebM ビデオに字幕を組み込もうとすると、同じ問題が発生しました。