QSVEncのAV1対応について質問いただいたときに勝手にforkして作成したAmatsukaze改造版(AV1対応版)をこちらにおいています。
https://github.com/rigaya/AmatsukazeAV1エンコード時に発生する問題についてコメントいただいたので、その緊急回避策として、自分でAV1用に改造していたものをお出ししただけのつもりで、基本的にはAV1対応だけで終わりにする予定でした (ただ、その後自分で作った不具合があったのでさらに更新した)
なので、申し訳ないのですが、どのぐらい更新するかはちょっと未定です。
・そもそもオリジナルが完成度が高いのであまり更新いらないのかも?
・私自身がAmatsukazeをそれほど深く使っていないので、わからないことが多い
・実装上難しい点が多い
・AMTSource、AvisynthNeo関連、KFM等のCUDA Filterは難易度高すぎ
・ts解析・読み込み関連などの知識も足らなそう (基本、ffmpegに任せたい)
・まあでもこの辺をいじる必要はなさそう
QSVEnc/NVEnc/VCEEncの更新等でも結構追いついてないこともあるので、あまり手を広げすぎると…というのもあります。
なので、優先度低めで更新しようかと思います。
注意点
予防線をはりまくですみませんが、
・一応ある程度テストはしていますが、Amatsukazeのヘビーユーザーではない(というか基本的な機能しかほとんど使ったことがない)ので、そんな機能もあったのか、みたいなことで漏れ等あるかもしれません。
・Unitテストがあるのですが、OpenCVをビルドするのがとてもしんどいのでやってないです(勘弁して…
0.9.2.6の更新点
・音声エンコーダ用のオプションが誤って映像エンコーダに設定されてしまう問題を修正。nekopanda氏は、「音声フォーマット無視オプション」に代わって音声エンコード機能を追加されたようです。
→
https://github.com/nekopanda/Amatsukaze/commit/5a75100d6b13034ff32ad40cc52471f2dabf3433その際、音声エンコーダのオプションを引き渡す"-aeo"オプションの処理に問題があったようで、これを修正しました。
その他
QSVEnc/NVEnc/VCEEncの--output-res使用時には、必ずSAR=1:1となります。これは、AmatsukzeのGUI側でリサイズした場合に合わせたつもりです。
リサイズを行わない場合、--output-resを使用しない場合には、入力ファイルのSAR比が引き継がれるはずです。
ダウンロード>>
スポンサーサイト
本家の更新が止まって久しいので、rigayaさんのフォローは、限定的であってもとても助かります。
nekopandaさんは、要望を汲み上げて、細かなところに手が届く仕様に作り上げてくださったので、本当に感謝していました。更新が無くなってからは、自分でrigayaさんビルドのx265に入れ替えたり、他のツールも更新したりして使ってきました。
これからも、ご負担にならない範囲で、どうかよろしくお願いいたします。
一点だけ、勝手な要望なのですが、追加してくださった「muxerの代わりにmp4boxを使用する」を、プロファイルで選択できるようにしていただけませんか。なぜか、x265でエンコードしてmp4boxでmuxすると、シークできないファイルができてしまいます。当方の環境の問題なのかもしれませんが、どうかよろしくお願いいたします。
コメントありがとうございます。可能な範囲で更新等できればと思います。
> x265でエンコードしてmp4boxでmuxすると、シークできないファイルができてしまう
なんと…。
試してみたのですが、手元ではmpc-beで普通にシークできてしまい、再現できていません。
基本的には処理はなるべく統一しておいたほうがシンプルなので、できれば問題をこちらで再現して、現状の方法でもシークできるようにならないか調査してみたく思います。
もちろん、調査してもうまくいかない場合は、そもそもmp4boxが必要なのはAV1のときだけなので、AV1のときだけmp4boxを使用するようにするにして、H.264/HEVCのときにはmuxerを使用するように戻そうかなと思います。
まずは調査のため、よろしければお手数ですが以下の情報等をお教えいただいけないでしょうか。
・エンコーダの追加オプション
・インターレース解除の設定(解除方法/出力fps/タイミング)
・x265のバージョン (0.9.2.6添付のものでしょうか?)
・mp4boxのバージョン (0.9.2.6添付のものでしょうか?)
・シークできなかったプレイヤー(再生環境)
なお、手元では下記で検証していました。
・Amatsukaze 改造版 0.9.2.6
・x265_3.5+67_x64
・mp4box 0.9.2.6添付
・インタレ解除: KFM/VFR/120fps
エンコードからmuxまでは、こんな感じに処理されておりました。
"C:/ProgramEx/Amatsukaze/exe_files/x265_3.5+67_x64.exe" --colorprim bt709 --transfer bt709 --colormatrix bt709 --preset faster --crf 24 --zones 0,775,b=1.34/776,7207,b=1.33/7208,7551,b=1/7552,12991,b=1.36/12992,13846,b=1.28 --frames 13847 -o "F:/temp/Amatsukaze/amt8351583/v0-0-0-main.raw" --no-opt-qp-pps --no-opt-ref-list-length-pps --y4m --input -
"C:/ProgramEx/Amatsukaze/exe_files/mp4box.exe" -brand mp42 -ab mp41 -ab iso2 -add "F:/temp/Amatsukaze/amt8351583/v0-0-0-main.raw#video:name=Video:fps=60000/1001:par=4:3" -add "F:/temp/Amatsukaze/amt8351583/a0-0-0-0-main.aac"#audio:name=Audio0 -new "F:/temp/Amatsukaze/amt8351583/t0-0-0-main.mp4"
"C:/ProgramEx/Amatsukaze/exe_files/timelineeditor.exe" --track 1 --timecode "F:/temp/Amatsukaze/amt8351583/v0-0-0-main.avstmp.timecode.txt" --media-timescale 240000 --media-timebase 1001 "F:/temp/Amatsukaze/amt8351583/t0-0-0-main.mp4" "Z:/dvd/[出力ファイル名].mp4"
"C:/ProgramEx/Amatsukaze/exe_files/mp4box.exe" -brand mp42 -ab mp41 -ab iso2 -chap "F:/temp/Amatsukaze/amt8351583/chapter0-0-0-main.txt" "Z:/dvd/[出力ファイル名].mp4"
rigaya様。
返信、ありがとうございます。お時間を取らせてすみません。
情報をお伝えいたします。
・エンコーダの追加オプション
-P main10 --crf 24 --asm avx2
・インターレース解除の設定(解除方法/出力fps/タイミング)
KFM/VFR/60fps
・x265のバージョン (0.9.2.6添付のものでしょうか?)
x265_3.5+67_x64.exe
・mp4boxのバージョン (0.9.2.6添付のものでしょうか?)
Amatsukaze 改造版 0.9.2.6添付の物です。
・シークできなかったプレイヤー(再生環境)
MPC-BE 1.6.1
Windows標準のメディアプレイヤー
Windows標準の「映画&テレビ」
エンコードの処理の様子を記しておきます。
"C:/Tool_Program/Video/Amatsukaze/exe_files/x265_3.5+67_x64.exe" --colorprim bt709 --transfer bt709 --colormatrix bt709 -P main10 --crf 24 --asm avx2 --zones 0,4047,b=1.37/4048,12967,b=1.37/12968,13567,b=1/13568,20887,b=1.37/20888,34055,b=1.36/34056,34087,b=1.03/34088,34655,b=1.34/34656,34679,b=1.08/34680,35023,b=1.37/35024,35063,b=1.25/35064,35207,b=1.1/35208,35367,b=1.32/35368,36197,b=1.38 --frames 36198 -o "W:/Amatsukaze_Temp/amt7573525/v0-0-0-main.raw" --no-opt-qp-pps --no-opt-ref-list-length-pps --y4m --input -
"C:/Tool_Program/Video/Amatsukaze/exe_files/mp4box.exe" -brand mp42 -ab mp41 -ab iso2 -add "W:/Amatsukaze_Temp/amt7573525/v0-0-0-main.raw#video:name=Video:fps=60000/1001:par=4:3" -add "W:/Amatsukaze_Temp/amt7573525/a0-0-0-0-main.aac"#audio:name=Audio0 -new "W:/Amatsukaze_Temp/amt7573525/t0-0-0-main.mp4"
"C:/Tool_Program/Video/Amatsukaze/exe_files/timelineeditor.exe" --track 1 --timecode "W:/Amatsukaze_Temp/amt7573525/v0-0-0-main.avstmp.timecode.txt" --media-timescale 120000 --media-timebase 1001 "W:/Amatsukaze_Temp/amt7573525/t0-0-0-main.mp4" "[出力ファイル名].mp4"
"C:/Tool_Program/Video/Amatsukaze/exe_files/mp4box.exe" -brand mp42 -ab mp41 -ab iso2 -add "W:/Amatsukaze_Temp/amt7573525/c0-0-0-0-main.srt#:name=SRT" -chap "W:/Amatsukaze_Temp/amt7573525/chapter0-0-0-main.txt" "[出力ファイル名].mp4"
なお、最初のMP4BOXの所を、muxerを使用するように以下のように書き換えると、問題なくシークできました。
"C:/Tool_Program/Video/Amatsukaze/exe_files/muxer.exe" -i "W:/Amatsukaze_Temp/amt7573525/v0-0-0-main.raw/v0-0-0-main.raw?fps=60000/1001" -i "W:/Amatsukaze_Temp/amt7573525/a0-0-0-0-main.aac" --optimize-pd -o ""W:/Amatsukaze_Temp/amt7573525/t0-0-0-main.mp4"
その後、もしやと思いMPC-BEを最新の1.6.5.3に更新したところ、シークできました。muxerでmuxしたものはどちらででも問題なかったので、プレーヤーの性とは思いもしませんでした。すみません。
ただ、Windows標準のメディアプレイヤーや「映画&テレビ」等では、やはりシークできないようです。デコーダーとの相性なのかもしれません。
また、元のmuxerについているオプションの「--optimize-pd」がカギかと思い、該当するMP4BOXのオプションを探して「-HINT」などを足してみましたが、変化なしでした。
さらに不思議なのは、x265ではなく、NVENCでエンコードしたものは、MP4BOXでmuxしていても問題なくシークできます。
こうした状況です。大変申し訳ないのですが、対処方法などわかりましたら、どうかよろしくお願いいたします。
2chと5.1chが混合したTSファイルをエンコする時に、qaacで音声をエンコすると2chになってしまうのは仕様でしょうか?
音声エンコードの設定はビットレート指定なし、オプションは何も指定していません。
> x265シークの件
詳細情報をいただき、ありがとうございます。
状況再現できました!シークできるようにできないか、こちらでいろいろ調べてみます。
> 2chと5.1chが混合したTSファイルをエンコする時に、qaacで音声をエンコすると2chになってしまう
音声エンコードが実装されている部分のコードを見ると、どう処理しているのかはっきりとは追い切れなかったのですが、どうも2chにすることを前提としているようです。
ご対応、ありがとうございます。状況が再現出来て良かったです。どうかよろしくお願いいたします。
音声の件、返信ありがとうございます。
今後はいらない部分ならカットするか、うまくいくか分からないですが、以前某掲示板でTMSRで音声のチャンネル数を変えれば分割されないという書き込みを見たので、それを試してみようと思います。
>いらない部分ならカット
このいらない部分は音声が2chの非本編部分ことです。
最新のコーデックへの対応とてもありがたいです。
優先順位低でも更新を続けていただけると嬉しいです。
気づいた点です。
今までx264で960x720にリサイズしていたプロファイルが、改造版でアスペクト比が変わりました。
設定
リサイズ:1280x720
エンコーダ追加オプション:--vf crop:160,0,160,0
オリジナル(0.9.1.4)では960x720で再生されますが、改造版では1280x720で横長で再生されます。
エンコードオプションでcropすることもあるのですね…
すみません、アスペクト比に関しては思っていたよりいろいろなパターンがありすぎて混乱しており申し訳ありません。
アスペクト比まわりは一度全て元に戻した方がいいのかも。。。
QSVEncCのAV1 mkv出力でssimの結果がログに出力されていません
nekopanda氏のバージョンでは出力されているのでmkvかアスペクト比まわりの変更によるものだと思います。
アスペクト比まわりを元に戻されるならmkvまわりの変更も一緒に元に戻すことになるかと思います。
mkvmerge.exeもv72で修正されていますので問題ないかと思います。
・x265シークの件
0.9.2.7で、x265エンコード時でも普通にシーク可能なよう、調整しました。
・アスペクト比の件 (x264 --vf crop)
0.9.2.7で、もとと同じ表示になるよう調整しました。
・AV1 mkv出力でssimの結果
0.9.2.7で、怪しそうなところを調整しました。
お手数ですが、お時間ある時に更新いただきお試しください。よろしくお願いいたします。