QSVEncC 2.00β
この前の続きで、QSVデコード付きのQSVEncCをひとまず公開。
デコードに関するコードの大部分は、この記事を書いた時のものを使ってる。Haswell登場も2年前かあ…
まだ実験段階でいろいろ不安定なので、テストするだけにしてください。
追加したオプション
--avqsv
avcodec + QSVデコードによる読み込みを指定。
--audio-file <ファイル名>
avqsvリーダー使用時のみ有効、音声をファイルに抽出。(デコードはしません!)
--trim <int>:<int>[,<int>:<int>][,<int>:<int>][,...]
指定したフレームの範囲のみエンコードできる…ようにしたい。最も不安定な機能。あんまり不安定だったらやめるかも。
機能制限
デコード対応コーデック
その他制限
・HEVCデコードにはHaswell以降のCPUと4080ドライバ以降が必要。
・HEVCデコードはElementary Streamのみの対応。
QSVデコーダはES(AnnexB)の形式しか受け取ってくれない。H.264/AVCの場合には、h264_mp4toannexbを使えばいいだけなので簡単なのだけど、H.265/HEVCはどうすればよいのやら? むぐぐ。
・解像度が途中で切り替わるようなケースには非対応。
・VFRには非対応。
・MPEG2のRFFには対応できない(?)。
このあたり、QSVでRFFとかをうまく扱う方法がよくわからない。RFFと非RFFが混在している場合、RFF部分をインタレに展開してから、インタレ解除するのが普通なのだろうけど、QSVではRFFがあってもそのまま処理してしまうみたい…
QSVにデータ突っ込んだら、エンコードされて出てくるまで手がでないので、QSVが対応してないのならどうにもならないのだけど、なにか方法あるのかなあ…?
既知の問題
・HEVC in mp4が対応できていない問題(上述)。
・DVD-Video/BlurayのPCMが--audio-fileで抽出できない問題。
・進捗が表示されない問題。
・H.264 PAFFを入れるとフレームレートが倍になる問題。
使用例
きっと動く
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.264/AVC input file.mp4>" -o "<output_file.264>" --audio-file "<output_file.aac>"
きっとこれも動く (RFFとかはないものとする)
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<MPEG2 input file.ts>" -o "<output_file.264>" --audio-file "<output_file.aac>" --tff --vpp-deinterlace bob --output-res 1280x720
Haswell + 4080ドライバ以降できっと動く
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.265/HEVC Elementary Stream file.265>" -o "<output_file.264>"
Haswell + 4080ドライバ以降でも動かない
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.265/HEVC input file.mp4>" -o "<output_file.264>" --audio-file "<output_file.aac>"
そのうちこういうことしたい(願望)
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<MPEG2 input file.ts>" -o "<output_file.264>" --audio-file "<output_file.aac>" --trim 2364:7333,9436:24060,25859:48815,51513:52711 --tff --vpp-deinterlace bob --output-res 1280x720
すみませんが、まだまだ不安定です…うまくいかないケースがきっとたくさん…。
ベータ版ダウンロード
まだテスト不足なのだけど、ここまででもうだいぶ疲れた…。
デコードに関するコードの大部分は、この記事を書いた時のものを使ってる。Haswell登場も2年前かあ…
まだ実験段階でいろいろ不安定なので、テストするだけにしてください。
追加したオプション
--avqsv
avcodec + QSVデコードによる読み込みを指定。
--audio-file <ファイル名>
avqsvリーダー使用時のみ有効、音声をファイルに抽出。(デコードはしません!)
--trim <int>:<int>[,<int>:<int>][,<int>:<int>][,...]
指定したフレームの範囲のみエンコードできる…ようにしたい。最も不安定な機能。あんまり不安定だったらやめるかも。
機能制限
デコード対応コーデック
コーデック | 対応状況 |
---|---|
MPEG2 | ○ |
H.264/AVC | ○ |
H.265/HEVC | △ |
VC-1 | × |
VP8/VP9 | × |
その他制限
・HEVCデコードにはHaswell以降のCPUと4080ドライバ以降が必要。
・HEVCデコードはElementary Streamのみの対応。
QSVデコーダはES(AnnexB)の形式しか受け取ってくれない。H.264/AVCの場合には、h264_mp4toannexbを使えばいいだけなので簡単なのだけど、H.265/HEVCはどうすればよいのやら? むぐぐ。
・解像度が途中で切り替わるようなケースには非対応。
・VFRには非対応。
・MPEG2のRFFには対応できない(?)。
このあたり、QSVでRFFとかをうまく扱う方法がよくわからない。RFFと非RFFが混在している場合、RFF部分をインタレに展開してから、インタレ解除するのが普通なのだろうけど、QSVではRFFがあってもそのまま処理してしまうみたい…
QSVにデータ突っ込んだら、エンコードされて出てくるまで手がでないので、QSVが対応してないのならどうにもならないのだけど、なにか方法あるのかなあ…?
既知の問題
・HEVC in mp4が対応できていない問題(上述)。
・DVD-Video/BlurayのPCMが--audio-fileで抽出できない問題。
・進捗が表示されない問題。
・H.264 PAFFを入れるとフレームレートが倍になる問題。
使用例
きっと動く
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.264/AVC input file.mp4>" -o "<output_file.264>" --audio-file "<output_file.aac>"
きっとこれも動く (RFFとかはないものとする)
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<MPEG2 input file.ts>" -o "<output_file.264>" --audio-file "<output_file.aac>" --tff --vpp-deinterlace bob --output-res 1280x720
Haswell + 4080ドライバ以降できっと動く
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.265/HEVC Elementary Stream file.265>" -o "<output_file.264>"
Haswell + 4080ドライバ以降でも動かない
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<H.265/HEVC input file.mp4>" -o "<output_file.264>" --audio-file "<output_file.aac>"
そのうちこういうことしたい(願望)
"x86\QSVEncC.exe" --avqsv --icq 21 -i "<MPEG2 input file.ts>" -o "<output_file.264>" --audio-file "<output_file.aac>" --trim 2364:7333,9436:24060,25859:48815,51513:52711 --tff --vpp-deinterlace bob --output-res 1280x720
すみませんが、まだまだ不安定です…うまくいかないケースがきっとたくさん…。
ベータ版ダウンロード
まだテスト不足なのだけど、ここまででもうだいぶ疲れた…。
スポンサーサイト