この前の続きで、QSVデコード付きのQSVEncCをひとまず公開。
デコードに関するコードの大部分は、
この記事を書いた時のものを使ってる。Haswell登場も2年前かあ…
まだ実験段階でいろいろ不安定なので、テストするだけにしてください。
追加したオプション
--avqsvavcodec + 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
すみませんが、まだまだ不安定です…うまくいかないケースがきっとたくさん…。
ベータ版ダウンロードまだテスト不足なのだけど、ここまででもうだいぶ疲れた…。
スポンサーサイト