2014年01月26日

VideoLANドキュメント私訳 第八回 変換 - VLCを使った変換についての詳細情報

VideoLANドキュメント ストリーミング関連抜粋私訳
https://wiki.videolan.org/Main_Page/

VLC Media Playerを持ちでないかたは(オープンソース・フリー、各種OS版あり)
VLC Media Player ダウンロード・ページ

VideoLanのwikiドキュメントの内、ストリーミングに関連するドキュメントを翻訳試みました。
数回に分けて掲載します。全部を一度に見る場合は、次のPDFファイルをご覧ください。
VideoLAN-Document-Streaming-How-To-etc.pdf
##########################################
第八回 変換 - VLCを使った変換についての詳細情報

変換 - VLCを使った変換についての詳細情報
https://wiki.videolan.org/Transcode/

変換はビデオ・ファイルを別のフォーマットやビットレートに変更するプロセスです。

VLCの変換は動画を別のフォーマットの新しいファイルにコピーします。そのため、オリジナルと新しいファイルの両方を得ることになります。これはこの追加されるファイルを保存する十分なハードディスクのスペースが必要だということを意味します。また変換が非常に遅くなることがあるため、ある程度高速なコンピュータが必要です。

VLCでは、変換はネットワークではなく、ファイルに保存する場合を除いて、ネットワークでストリームするのと全く同じです。

目次
1.互換性の問題
2.ウィザードを使った変換
3.コマンドラインによる変換
3.1.MSウィンドウズの場合
3.2.完全な非対話的変換
4.キャンバスとパディング
5.非対話的バッチ変換(ウィンドウズ)
5.1.バッチファイル
5.2.VBスクリプト
6.非対話的バッチ変換(Linux)
6.1.非対話的マージ/変換(ウィンドウズ)
6.2.サンプル・スクリプト

1.互換性の問題

入力ストリームがすでに出力ストリームのエンコードと同じなら変換の必要は全くありません(コマンドラインの変換設定をしないだけで、それゆえ変換はしません)。GUIではこれを「オリジナルトラックのままにする」と呼びます(と思う)。
変換設定を決定した場合、あるコンテナー・フォーマット(マルチプレクサ)はいくつかのコーデックだけをサポートすることに注意してくださいーどれが何をサポートするかを調べるにはストリーミング機能の互換性を見てください
streaming feature:
http://www.videolan.org/streaming/features.html
現在のフォーマットが望むマルチプレクサと互換性がない場合、いずれか互換性のあるものに変換するか、異なるマルチプレクサを選ぶかしなければなりません。マルチプレクサと互換性のないストリームを選ぶと、何も反応なく失敗します。エラーのデバグに役立てるためメッセージ・ウィンドウのエラーメッセージを調べることができます。

2.ウィザードを使った変換

VLCには変換とストリーミングのウィザードがあります。ファイルを変換するためには、変換オプションを選択するだけす。変換するフォーマットを尋ねられたら、ビデオ・コーデック、オーディオ・コーデック、コンテナー・フォーマットを指定できます。

3.コマンドプロンプトによる変換

VLCを使ったより柔軟な変換方法は、VLCを起動するためコマンド・プロンプトを使うことです。変換はストリーミングと同じ作業をします。例えば、次のコマンドはasfファイルをMPEG-2ファイルに変更します:

vlc "C:\Movies\Your File.asf" :sout='#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst="C:\Movies\Your File Output.ps.mpg"}'

access=fileはファイルに(ストリームではなく)出力を保存するようVLCに支持し、dstは新しい(出力)ファイルの場所です。
注1:MAC OS Xの場合、BUSエラーを回避するためVLCの代わりにclivlcを使うべきです。
注2:古いVLC(0.8.6以前)では"dst"の代わりに"url"を使ってください。

変換にはしばらく時間がかかります。そのため、最初の30秒だけエンコードするよう --stop-time=30 のようなオプションを使うのが望ましい。これはファイルが正しく変換されたことをチェックできること、また出力が適切な質であるかをチェックできることを意味します(注:Mac OS Xでは、この方法は有効でないようです。少し経ったら、VLCはすでに変換された部分を適切に書き出します)。
変換文にはビデオ・コーデックとacodecを変更するためvcodecとvbが、オーディオ・コーデックを変更するためabを挿入することができます。vcodecがない場合ビデオ・コーデックは同じままになります(acodecと同じ)。
利用できる共通の追加オプションには(確実にオーディオを正確に同期させるための)audio-syncと(インターレースビデオの質をわずかに高める)deinterlaceがあります。

3.1.MSウィンドウズの場合

ウィンドウズのシンタックスはわずかな違いがあります:

C:\Program Files\VideoLAN\VLC>vlc -vvv "D:\688497.flv" --sout=#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:standard{access=file,mux=ts,dst="D:\asd.mpg"}

(注:おそらく0.8.6以前の古いVLCは"dst"の代わりに"url"を使用します)

(注:コマンドラインの解釈のため、場合により、特にシングルクオーテーション''とダブルクオーテーション""のブロック内で、バックスラッシュ\ダブルバックスラッシュを使ってエスケープしなければならないでしょう。そのためファイル名は D:\\path\\to\\file.mpgとなります)

3.2.完全な非対話的変換

完全な非対話的変換のためには(Mac OS Xで行う場合必要なケース)、上記のサンプルは次のように書き換えます

vlc -I dummy "C:\Movies\Your File.asf" :sout='#transcode{vcodec=mp2v,vb=4096,acodec=mp2a,ab=192,scale=1,channels=2,deinterlace,audio-sync}:std{access=file, mux=ps,dst="C:\Movies\Your File Output.ps.mpg"}' vlc://quit

ふたつの追加のオプションは

-I dummy
Disables the graphical interface
vlc://quit
Quit VLC after transcoding

DVDから変換する場合、DVDのメニューシステムの対話画面を避けるため、dvd:// の表記の代わりに、dvdsimple:// の表記を使用する必要もあります。ディスクを開くとき、'no DVD menus'オプションを選んでGUIでこれを使用することができます。

ウィンドウズで、"-I dummy"オプションは'vbv buffer overflow'のエラーメッセージがコマンドプロンプトに出力される場合、テキスト・インターフェースを開く代わりに、"-I rc"を試すことができますが、ウィンドウズではダミーがすることを正確にします。

詳細はVideoLAN's Official Documentationを参照
http://www.videolan.org/doc/streaming-howto/en/ch03.html

4.キャンバスとパディング

キャンバスとパディング・オプションはバージョン0.9.*以降変更されましたt。wikiのほとんどのサンプルは通用しません。

transcode{vcodec=mp2v,vfilter=canvas{width=640,height=480}}

他のオプション:
・aspect=4:3 : Aspect ratio
・padd:
 ・true: Pad with black bars
 ・false: crop video

transcode{vcodec=mp2v,vfilter=croppadd{cropttop=20,cropbottom=30,paddleft=100}}

top、left、right、bottomをピクセル単位でカットまたは余白挿入をします。

width、hightパラメーターは使わないでください!vfilter以前に適用すると望まない結果が生じます。

5.非対話的バッチ変換(ウィンドウズ)

(略)
*訳注:インデントができないため、原文をご覧ください

6.非対話的バッチ変換(Linux)

対話画面を使わずにいくつかのファイルを変換するためには、ファイルがあるフォルダーにバッチスクリプトを作り次のbashスクリプトにつぎのコマンドを加えます:
*訳注:テストはしていません。

#!/bin/bash
vcodec="VIDEO_CODEC"
acodec="AUDIO_CODEC"
bitrate="VIDEO_BITRATE"
arate="AUDIO_BITRATE"
ext="OUTPUT_EXT"
mux="MUXER"
vlc="PATH_TO_VLC"
fmt="INPUT_EXT"

for a in *$fmt; do
$vlc -I dummy -vvv "$a" --sout "#transcode{vcodec=$vcodec,vb=$bitrate,acodec=$acodec,ab=$arate,channels=6}:standard{mux=$mux,dst=\"$a.$ext\",access=file}" vlc://quit
done

6.1.非対話的マージ/変換(ウィンドウズ)

How_to_Merge_and_Transcode_Multiple_Videosを参照:
https://wiki.videolan.org/How_to_Merge_and_Transcode_Multiple_Videos/

6.2.サンプル・スクリプト

(略)
posted by Kose at 20:17| VLC Media Player