Aviutlからffmpegで出力してみる

Aviutlからffmpeg.exeとかavconv.exeを使って出力するプラグインを作って遊んでみた。なんかできた。

遊びとしてはまあ面白いが、特に実用性はなかった。にしてもffmpegのコマンドはよくわからんです。


いつ使うの?



さあ?

いろいろな方がさまざまな出力プラグインを作ってくださっているので、現状でもほとんどなんでも出力できる。

ってことは、使う機会ないかも?

ということで遊んでみたい人用においておきます。



x264を利用したい場合には、特に理由がなければx264guiExを使用したほうが便利だと思います。



使い方



基本的にはx264guiExと同じ。

インストールされてなかったら、
VC++ 2008 SP1 再頒布可能パッケージ
をインストール。

さらにインストールされてなかったら(Vista/Win7ではインストール済みなので不要)、
.NET Framework 2.0(SP2) Runtime (x86)
.NET Framework 2.0(SP2) Runtime (x86) LanguagePack
の2つをインストール。

ffmpegOut.auo、ffmpegOut.ini、ffmpegOut_stgフォルダ をAviutlのpluginフォルダにコピー。

ffmpeg.exeなりavconv.exeなり、実行ファイルを用意して設定画面から指定。

プリセットとかを参考に設定して使ってみてください。

ffmpeg/avconvのバージョンによっては、プリセットでは動かないかもしれませんので、そこは適宜変更してください。ffmpegのコマンドのバージョンによる変遷とか、細かいコマンド(オプション)とかはよくわからんです。




処理概要



[通常]
1) 音声出力
2) 動画エンコ + 出力した音声を"-i"で読み込み

[自動2pass時]
1) 1pass目の動画エンコ + 音声出力
2) 2pass目の動画エンコ + 出力した音声を"-i"で読み込み




動画設定



自動2passエンコード
2回エンコードを回し、自動的に2passエンコードを行います。

転送色空間
ffmpeg/avconvにどの色空間で映像データを渡すかを決定します。

インタレ保持
ffmpegOut.auoでのYUY2->NV12変換でインタレ用を使用するかどうかです。インタレ保持エンコを行うためには、この設定だけでなく、ffmpeg/avconv側のコマンドにもインタレ保持のコマンドを記述する必要があります。

出力拡張子
出力ファイルの拡張子を、ここで設定した拡張子に上書き・追加できます。ffmpeg/avconvによるエンコードでは、さまざまな動画をエンコードできるため、設定画面から拡張子を変更できるようにしました。

エンコーダ優先度
ffmpeg/avconvのCPU優先度の設定です。

一時フォルダ
エンコ中の動画ファイルの出力位置を変更できます。




最終的に渡されるコマンドライン



part-A~Eが順番に組み合わさって構成されます。

[part-A 映像入力情報]
パイプで映像データを転送
-f rawvideo
-vframes <フレーム数>
-s <width>x<height>
-pix_fmt <「転送色空間」で設定されたもの>
-r <fps>
-i "-"

[part-B 音声入力] (音声出力が行われ、「音声を有効」にチェックが入っている場合)
-i "%{audpath}"

[part-C コマンド入力欄]
改行が削除された後、そのまま追加されます。ここで-vcodecや-acodec、さらに-b:v(映像ビットレート)、-b:a(音声ビットレート)を指定してしてください。

[part-D 自動2passエンコード] (自動2passが設定された時のみ)
-pass x

[part-E 上書きの強制(-y)と出力ファイル名]
-y
"%{savpath}"



いつもの注意事項など



無保証です。自己責任で使用してください。ffmpeg / avconv 出力 (ffmpegOut.auo)を使用したことによる、いかなる損害・トラブルについても責任を負いません。



ダウンロード>>



スポンサーサイト



コメントの投稿

非公開コメント

m2tsで出すには

おせわになります
Aviutlでm2tsに出す方法をいろいろ探して、ここにたどり着きました
したいことはm2tsコンテナファイル(中身はmpeg2,aacのts)をAviutlにDirect show readerで取込、映像に透過性ロゴフィルタを掛けたものをそのままm2tsのコンテナに戻したいだけなのですが
アプローチとして間違っているでしょうか?

Re: m2tsで出すには

とりあえずDirectShowReaderよりL-SMASH Worksのlsmashinput.auiのほうが音ズレの可能性も少なく良いかと。POPさん(http://pop.4-bit.jp/)がL-SMASH Worksをビルドしてくださっているのでその中のlsmashinput.auiで読み込んだほうがいろいろトラブルが減ると思います。

やりたいこととしては、透過性ロゴフィルタを掛けてH.264エンコードして、m2tsにエンコードしたい、という理解で合っていますか?

H.264エンコードならffmpegOutを使うよりも、x264guiExのほうで拡張子.264で出力を行って、それをAACファイルでtsMuxerでmuxすればm2tsはできるとは思いますが…。

Re: Re: m2tsで出すには

コメントありがとうございます
mpeg2-tsをmpeg2-tsのまま、特に変換することなく透過性フィルターだけをかけて出したいのです。
音声はaacのまま無劣化で出せたらいいのですが
それとなるだけtsMuxerでのmuxingはしたくないです。
字幕付きの2カ国語のソースでうまくいかなかったりしたので。
オリジナルのm2tsのコンテナのまま映像部分だけフィルターが消して入れ替えたいのです
最終的にBDプレーヤーで見ることを想定しています
そもそも、やりたいことは無理なことなのでしょうかね

Re: m2tsで出すには

>特に変換することなく透過性フィルターだけをかけて出したい
さすがに無理かと…。
やはり再エンコードかけるしかない、と思います。

re: m2tsで出すには

書き方が悪かったようです
元の形式で出したいという意味です
mpeg2のcbrならcbrの同じビットレートで、音声無劣化で
今記述しているコマンド欄は以下の通りです
-acodec copy
-ab 144k
-vcodec mpeg2video
-b 15000k
-minaret 15000k
-maxrate 15000k
-bufsize 1835k
です

Re: m2tsで出すには

ああ、なるほど、誤解してました。ごめんなさい。

また、BDに入れるmpeg2の仕様というのをよくわかっていないうえに、ffmpegがm2tsを出力できるのかわかりません。

少なくとも、Aviutlに読み込んだ時点で音声はデコードされているので、-acodec copyですとPCMになってしまい、「映像のみすり替えてm2tsを再構築」のようなことは簡単にはできないかと思います。このへんあまり詳しくなく、すみません。

NVENCとCPU省電力

NVENCを使用してエンコードするとまれにNVENC64.EXEが終了しないことがある。
原因は印出るCPUの省電力モードの移行により発生するようです。
CPUの負荷変動が連続して発生した場合などのに対応できていないような気がします。(Z87-G43)
古いマザーボードなのでアルミバイパスコンデンサなどの劣化などによるアナログ的な応答問題もありそうですね。
いずれにせよ固定クロックにしてからは全く不具合が発生しなくなりました。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先: rigaya34589@live.jp
github twitter

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutl 出力プラグイン
x264guiEx 3.xx
- x264を使用したH264出力
- x264guiExの導入紹介動画>
- x264guiExの導入
- x264guiExのエラーと対処方法>
- x264.exeはこちら>

x265guiEx
- x265を使用したH.265/HEVC出力
- x265guiExの導入>
- x265.exeはこちら>

QSVEnc + QSVEncC
- QuickSyncVideoによるHWエンコード
- QSVEnc 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC
- NVIDIAのNVEncによるHWエンコード
- NVEnc 導入/使用方法>
- NVEncCオプション一覧>

VCEEnc + VCEEncC
- AMDのVCE/VCNによるHWエンコード
- VCEEnc 導入/使用方法>
- VCEEncCオプション一覧>

svtAV1guiEx
- SVT-AV1によるAV1出力
- svtAV1guiExの導入>
- SVT-AV1単体はこちら>

VVenCguiEx
- VVenCによるVVC出力
- VVenCguiExの導入>

ffmpegOut
- ffmpegを使用した出力
- ffmpegOutの導入>


○Aviutl フィルタプラグイン
自動フィールドシフト (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: aji様

clfilters 
- OpenCLベースの複数のGPUフィルタ集
- 対応フィルタの一覧等はこちら

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX512対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX512による高速化版
- オリジナル: まじぽか太郎様

PMD_MT
- SSE2~AVX512による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
Amatsukaze改造版
- AmatsukazeのAV1対応版

x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定
- これまでの測定結果はこちら

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)
SVT-AV1 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR