Avisynth 32bit + avs4x265 + x265 64bit なエンコード

スポンサーリンク

 今日になって「あ!!」と思ってやったら出来たことなんだけども、x264 では「x264.exe が 64bit なら Avisynth も 64bit でなくてはいけない」のは周知の事実。これが固定観念として残ったまま Avisynth + x265.exe をしていたわけで、両者 32bit のままエンコードをしていた。
 しかし、x265 は入力側として avs を読み込んで Avisynth を叩けないので、avs4x265.exe 等のツールを用いるかコマンドラインでパイプ経由で x265.exe にフィルタをかましたフレームを引き渡す必要がある。x265.exe はエンコードをするフレームさえ受けとれば良いので「x265.exe が 32bit でも 64bit でも」問わずに動く。と言う事に。

 x265.exe が 64bit であるメリットはエンコード速度が速くなると言う一言に尽きる。なので、積極的に使って行きたいところだが、上記の x264 でエンコードを行うときの固定観念から Avisynth 64bit のプレビューが行えるソフトを探してみたり、手探りで使って見たりと随分無駄な労力を割いてしまった。

 これが x265.exe のバイナリを 64bit 版に入れ替えるだけで普通に動いていたから、32bit 版の時よりも 2~3fps 高速にエンコードを行うことが出来るようになりましたと言うお話し。
 改めて思い込みって怖いな~と思ったorz でも気付いて良かった……

 エンコード速度の参考として 34,523 フレームのエンコードを行って fps を比較した結果……
  AVS ファイル → avs4x265.exe → x265.exe x86 = 17.38fps
  AVS ファイル → avs4x265.exe → x265.exe x64 = 20.17fps
 この様に +2.79fps 速くエンコードが完了し、エンコード時間も約 275 秒短くなった。SSIM は変わらず、成果物のファイルサイズも同一だからデメリットも無い。

* 2015/04/04 15:10 追記
 avs4x26x というユーティリティがあり、avs4x265 と同等以上の事が出来る。引数も大体同じなので avs4x26x を用いた方が良いだろうと思われる。
 以下 avs4x26x の Usage の一部をペタリ

avs4x26x - simple AviSynth pipe tool for x262/x264/x265
Version: 0.10.0.71, built on Sep 15 2014, 14:23:43

Usage: avs4x26x [avs4x26x options] [x26x options] -o <output> <input>

Supported input formats:
     .avs
     .d2v: requires DGDecode.dll
     .dga: requires DGAVCDecode.dll
     .dgi: requires DGAVCDecodeDI.dll, DGDecodeNV.dll or DGDecodeIM.dll accordin
g to dgi file
     .vpy: try to use VSImport -> AVISource -> HBVFWSource
           (VSImport requires VapourSource.dll)
           (HBVFWSource requires HBVFWSource.dll, and will force input-depth=16)

     .avi: try to use AVISource -> LWLibavVideoSource -> FFVideoSource(normal)
                      -> DSS2 -> DirectShowSource
     .mp4/.m4v/.mov/.3gp/.3g2/.qt:
           try to use LSMASHVideoSource -> LWLibavVideoSource
                      -> FFVideoSource(normal) -> DSS2 -> DirectShowSource
     .m2ts/.mpeg/.vob/.m2v/.mpg/.ogm/.ogv/.ts/.tp/.ps:
           try to use LWLibavVideoSource
                      -> FFVideoSource(demuxer="lavf" and seekmode=-1)
                      -> DSS2 -> DirectShowSource
           seek-mode will be forced to "safe" for these formats if ffms is used
     .mkv/.flv/.webm:
           try to use LWLibavVideoSource -> FFVideoSource(normal) -> DSS2
                      -> DirectShowSource
     .rmvb/.divx/.wmv/.wmp/.asf/.rm/.wm:
           try to use DSS2 -> DirectShowSource
     (FFVideoSource, LWLibavVideoSource, LSMASHVideoSource, DSS2, DirectShowSour
ce
           requires ffms2.dll, LSMASHSource.dll, avss.dll, DirectShowSource.dll)


Options:
 -L, --x26x-binary <file>   User defined x26x binary path.
                                Default: "x265" if output file is *.h265/.265/.h
evc
                                         otherwise "x264_64"

 -L オプションで指定したバイナリを用いて H.264 or HEVC エンコードが出来る。
 使い方としては

avs4x26x.exe -L /path/to/x265.exe --crf 20 --preset medium -o output.265 input.avs

 なんて感じにしてやると良いだけなので簡単。

スポンサーリンク

『Avisynth 32bit + avs4x265 + x265 64bit なエンコード』へのコメント

  1. 名前:匿名 投稿日:2017/05/03(水) 11:13:26 ID:a07bb2d34 返信

    はじめまして、こんにちは!!
    Avisynth x264でエンコードしたくて2日程格闘してましたら、ここに辿り着きました。
    私のしたかったエンコ方法だったのでとても助かりました。
    ありがとうございました。

    • 名前:ぶっち 投稿日:2017/05/03(水) 17:29:32 ID:feb97a623 返信

      はじめましてー! コメントありがとうございます。
      avs4x26x ってソフト自体結構古い物ですが、個人的には未だこれがベストな物です。