QSVEnc 2.29
※OneDriveのほうが2.28のままだったのを修正しました。
QSVEncCの様々な機能強化と以前いただいた要望の反映。要望の反映が遅くなりすみませんでした。
・デュアルモノへの対応。
・Http Live Streaming(HLS)への対応。
・udp等のプロトコルへの対応。
・音声エンコード高速化。
・ログ改善。
だいぶてんこ盛り。
QSVEnc
コメントいただいたAuoLink時の動作ですが、Aviutlと出力プラグインの情報のやり取りの仕様により、情報をクリアするうまいタイミングがないことが分かりました(どのようにやっても正常な動作が阻害される)。対応できず、申し訳ありません。
QSVEncC
・ffmpeg_dllを更新。
速度の高速化と、udp等の様々なプロトコルのサポートを追加。
ビルド時のコンパイルオプションをバイナリサイズ最小化(-Os)から、速度最適化(-O3)に切り替え、Atom系CPUなどで、音声エンコードがボトルネックになるときなどに高速化。配布パッケージを小さくしたかったので、-Osでビルドしていたけど、やはりコンパイラの最適化でかなり速度が変わるようだ。
環境: Celeron N3150, Win10 x64, 4331ドライバ、QSVEncC 2.29 x64
入力: MPEG2 1440x1080をそのままエンコードし、音声もaacで再エンコードする例。
QSVEnc 2.26同梱dll。142fps。

QSVEnc 2.29同梱dll。167fps。

というわけで、CPU処理がボトルネックになっている場合にはかなり効果があるみたい。出力・音声処理の並列化をする前は80fps前後だったので、そのころからは2倍速になったことになる。
・udp等のプロトコルへの対応。
また、ffmpegのdllをnetworkやprotocolsを有効にしてビルドした。これにより、udpのリアルタイムエンコードなどが可能。この場合、以下のようにして--avqsv-analyze を適切に設定しないとエンコードできないことがある。
使用できるプロトコルは、下記--check-protocolで確認できる。使用方法は、上の例のようにffmpegと同様に入出力ファイル名を指定する。
・dllのバージョンを表示するオプションを追加。
--check-avversion
・avqsv時やmux時にサポートされているプロトコルを表示するオプションを追加。
--check-protocols
現状のサポート状況は以下の通り。
・mux時にオプションパラメータを渡すオプションを追加。
-m <string1>:<string2>
以前いただいた要望の反映。主にHttp Live Streaming出力時に必要なパラメータを渡すために使用する。
例として、下記のようにしてHLS用の出力を行うことができる。
単にffmpegにformatのオプションを渡しているようなものなので、そのほかのオプションはこのあたりを参考にしてください。
・libavcodec/libavformatからのエラーメッセージをログファイルに書き出せるようにした。
これまではログファイルに保存されるのは、QSVEncの吐いているログだけで、libavcodec/libavformatからのエラーメッセージはコンソールには表示されるのに、ログファイルは保存されない、ということになっていた。これをちゃんと保存出るようにした。
・音声のサンプリング周波数を変換する機能を追加。
--audio-samplerate [<int>?]<int>
変換先周波数をHzで指定する。
・音声のサンプリング周波数変換時に使用するエンジンを切り替えるオプションを追加。
--audio-resampler <string>
選択肢は"swr"(デフォルト=swresampler)と"soxr"(libsoxr)。
・トラックを指定して、音声チャンネルの分離・統合などを行うオプションを追加。
--audio-stream [<int>?][<string>]
これも以前いただいた要望の反映で、典型的にはデュアルモノ音声などに対し、--audio-stream FR,FLなどとして分離する。
また同時に、音声のチャンネル数を指定するのにも使用することができ、--audio-stream stereoなどとすることで常に音声を2chに変換したりできる。
音声チャンネルの分離・統合などを行う。
--audio-streamが指定された音声トラックは常にエンコードされる。
,(カンマ)で区切ることで、入力の同じトラックから複数のトラックを生成できる。
書式:
<int>に処理対象のトラックを指定する。
<string1>に入力として使用するチャンネルを指定する。省略された場合は入力の全チャンネルを使用する。
<string2>に出力チャンネル形式を指定する。省略された場合は、<string1>のチャンネルをすべて使用する。
例1: --audio-stream FR,FL
最も必要だと思われる機能。デュアルモノから左右のチャンネルを2つのモノラル音声に分離する。
例2: --audio-stream :stereo
どんな音声もステレオに変換する。
例3: --audio-stream 2?5.1,5.1:stereo
入力ファイルの第2トラックを、5.1chの音声を5.1chとしてエンコードしつつ、ステレオにダウンミックスしたトラックを生成する。
実際に使うことがあるかは微妙だが、書式の紹介例としてはわかりやすいかと。
使用できる記号
QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
QSVEncBenchmark.zipはベンチマーク用です。(約220MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>
QSVEncCの様々な機能強化と以前いただいた要望の反映。要望の反映が遅くなりすみませんでした。
・デュアルモノへの対応。
・Http Live Streaming(HLS)への対応。
・udp等のプロトコルへの対応。
・音声エンコード高速化。
・ログ改善。
だいぶてんこ盛り。
QSVEnc
コメントいただいたAuoLink時の動作ですが、Aviutlと出力プラグインの情報のやり取りの仕様により、情報をクリアするうまいタイミングがないことが分かりました(どのようにやっても正常な動作が阻害される)。対応できず、申し訳ありません。
QSVEncC
・ffmpeg_dllを更新。
速度の高速化と、udp等の様々なプロトコルのサポートを追加。
ビルド時のコンパイルオプションをバイナリサイズ最小化(-Os)から、速度最適化(-O3)に切り替え、Atom系CPUなどで、音声エンコードがボトルネックになるときなどに高速化。配布パッケージを小さくしたかったので、-Osでビルドしていたけど、やはりコンパイラの最適化でかなり速度が変わるようだ。
環境: Celeron N3150, Win10 x64, 4331ドライバ、QSVEncC 2.29 x64
入力: MPEG2 1440x1080をそのままエンコードし、音声もaacで再エンコードする例。
QSVEnc 2.26同梱dll。142fps。

QSVEnc 2.29同梱dll。167fps。

というわけで、CPU処理がボトルネックになっている場合にはかなり効果があるみたい。出力・音声処理の並列化をする前は80fps前後だったので、そのころからは2倍速になったことになる。
・udp等のプロトコルへの対応。
また、ffmpegのdllをnetworkやprotocolsを有効にしてビルドした。これにより、udpのリアルタイムエンコードなどが可能。この場合、以下のようにして--avqsv-analyze を適切に設定しないとエンコードできないことがある。
-i udp://127.0.0.1:1234?pkt_size=262144^&fifo_size=8000000 --audio-codec aac -o test.ts
--output-thread 0 -a 1
使用できるプロトコルは、下記--check-protocolで確認できる。使用方法は、上の例のようにffmpegと同様に入出力ファイル名を指定する。
・dllのバージョンを表示するオプションを追加。
--check-avversion
・avqsv時やmux時にサポートされているプロトコルを表示するオプションを追加。
--check-protocols
現状のサポート状況は以下の通り。
input protocols:
async cache concat crypto
data ffrtmphttp file ftp
gopher hls http httpproxy
https mmsh mmst pipe
rtmp rtmps rtmpt rtmpts
rtp srtp subfile tcp
tls udp udplite
output protocols:
crypto ffrtmphttp file ftp
gopher http httpproxy https
icecast md5 pipe rtmp
rtmps rtmpt rtmpts rtp
srtp tcp tls udp
udplite
・mux時にオプションパラメータを渡すオプションを追加。
-m <string1>:<string2>
以前いただいた要望の反映。主にHttp Live Streaming出力時に必要なパラメータを渡すために使用する。
例として、下記のようにしてHLS用の出力を行うことができる。
-i <input> -o test.m3u8 -f hls -m hls_time:5
-m hls_segment_filename:test_%03d.ts --gop-len 30
単にffmpegにformatのオプションを渡しているようなものなので、そのほかのオプションはこのあたりを参考にしてください。
・libavcodec/libavformatからのエラーメッセージをログファイルに書き出せるようにした。
これまではログファイルに保存されるのは、QSVEncの吐いているログだけで、libavcodec/libavformatからのエラーメッセージはコンソールには表示されるのに、ログファイルは保存されない、ということになっていた。これをちゃんと保存出るようにした。
・音声のサンプリング周波数を変換する機能を追加。
--audio-samplerate [<int>?]<int>
変換先周波数をHzで指定する。
・音声のサンプリング周波数変換時に使用するエンジンを切り替えるオプションを追加。
--audio-resampler <string>
選択肢は"swr"(デフォルト=swresampler)と"soxr"(libsoxr)。
・トラックを指定して、音声チャンネルの分離・統合などを行うオプションを追加。
--audio-stream [<int>?][<string>]
これも以前いただいた要望の反映で、典型的にはデュアルモノ音声などに対し、--audio-stream FR,FLなどとして分離する。
また同時に、音声のチャンネル数を指定するのにも使用することができ、--audio-stream stereoなどとすることで常に音声を2chに変換したりできる。
音声チャンネルの分離・統合などを行う。
--audio-streamが指定された音声トラックは常にエンコードされる。
,(カンマ)で区切ることで、入力の同じトラックから複数のトラックを生成できる。
書式:
<int>に処理対象のトラックを指定する。
<string1>に入力として使用するチャンネルを指定する。省略された場合は入力の全チャンネルを使用する。
<string2>に出力チャンネル形式を指定する。省略された場合は、<string1>のチャンネルをすべて使用する。
例1: --audio-stream FR,FL
最も必要だと思われる機能。デュアルモノから左右のチャンネルを2つのモノラル音声に分離する。
例2: --audio-stream :stereo
どんな音声もステレオに変換する。
例3: --audio-stream 2?5.1,5.1:stereo
入力ファイルの第2トラックを、5.1chの音声を5.1chとしてエンコードしつつ、ステレオにダウンミックスしたトラックを生成する。
実際に使うことがあるかは微妙だが、書式の紹介例としてはわかりやすいかと。
使用できる記号
mono = FC
stereo = FL + FR
2.1 = FL + FR + LFE
3.0 = FL + FR + FC
3.0(back) = FL + FR + BC
3.1 = FL + FR + FC + LFE
4.0 = FL + FR
4.0 = FL + FR + FC + BC
quad = FL + FR + BL + BR
quad(side) = FL + FR + SL + SR
5.0 = FL + FR + FC + SL + SR
5.1 = FL + FR + FC + LFE + SL + SR
6.0 = FL + FR + FC + BC + SL + SR
6.0(front) = FL + FR + FLC + FRC + SL + SR
hexagonal = FL + FR + FC + BL + BR + BC
6.1 = FL + FR + FC + LFE + BC + SL + SR
6.1(front) = FL + FR + LFE + FLC + FRC + SL + SR
7.0 = FL + FR + FC + BL + BR + SL + SR
7.0(front) = FL + FR + FC + FLC + FRC + SL + SR
7.1 = FL + FR + FC + LFE + BL + BR + SL + SR
7.1(wide) = FL + FR + FC + LFE + FLC + FRC + SL + SR
QSVEnc ダウンロード>>
ダウンロード (ミラー) >>
OneDriveの調子がいまいちの時はミラー(dropbox)からどうぞ。同じものです。
QSVEncBenchmark.zipはベンチマーク用です。(約220MBと重いので注意)。run_benchmark.batをダブルクリックで実行です。
QSVEncCのオプションについてはこちら。
QSVEncCオプション一覧>
スポンサーサイト