From Avisynth wiki
Jump to: navigation, search
Author 06_taro
Version v0.9.1
Download avs4x264mod-0.9.1-git-r64(105c53a).7z
Category Utilities
License GPLv2
Discussion Doom9 Thread


[edit] Description

Continued development of avs4x264. You can use this software to encode videos using the 32-bit version of Avisynth with the 64-bit version of x264 under Windows.
The x264 executable needs to be named x264_64.exe and placed in the same folder as this program. Otherwise use --x264-binary "x264_path"or -L "x264_path" to define the path of x264 binary.

avs4x264mod.exe --x264-binary "C:\x264_64-abc.exe" -o out.264 in.avs

[edit] Requirements

** If you're using AviSynth 2.5.8, YV12 will be the only colorspace supported.

[edit] Modifications

-- When x264′s parameter “input-depth” is set and is not equal to 8, divide “width” by 2. 
   This makes faked 16-bit avs output, i.e., MSB and LSB field interleaved clip, be treated correctly by x264. 
   If “input-depth” is not defined or equals to 8, avs4x264mod acts in the same way as original avs4x264.

-- Print full command-line piped to x264_64.exe to screen, prefixed by “avs4x264 [info]:”.

-- Make x264_64.exe path changeable. The path of x264 binary can be set by --x264-binary "x264_path" or -L "x264_path". 
   If custom path is not set, default path "x264_64.exe" will be used.

-- Directly output i422/i444 with AviSynth 2.6 csp YV16/YV24.

-- Show help info when running with no options.

-- Improve capability with more styles of parameters in x264.
   E.g., --tcfile-in="timecode.txt", --input-depth=16, --x264-binary="x264", -L=x264 and -Lx264.

-- Do not add --input-res/--fps/--frames/--input-csp if already defined.

-- Correct number of frames to be handled when --frames is defined.

-- Add "--seek-mode" to decide use "fast" seek mode or "safe" seek mode when has "--seek". Default is "fast".
---- "fast" mode is similar to x264's internal method of avs demuxer: skip frames until the frame --seek indicates. 
     However, when used with --qpfile/--tcfile-in, it won't skip but add a "FreezeFrame(0, seek, seek)" to avs script
     to actually skip the process of those frames. I have to play this trick because x264 regards qpfile/tcfile-in as
     qpfiles/timecodes of input files, not output files, so the frame numbers of input piped raw ( can be only linearly
     seeked in x264 ) has to be left untouched.
---- "safe" mode uses a safer but slower method: delivering every untouched frame to x264. When the process of frames
     before "--seek" frame is heavy, the "useless" running time of processing those frames will be much longer than 
     "fast" mode, but the result is safer for scripts like TDecimate(mode=3), which can only be seeked in a linear way.

-- Add "--timebase" when using "--tcfile-in"

-- Correct framerate to proper NTSC fraction if applicable

-- Support direct .d2v/.dga/.dgi input, .vpy input with either VapourSource(VSImport) or vfw interface(AVISource/HBVFWSource),
    and some media file input such as .avi/.mkv/.mp4/.m2ts/etc

[edit] Usage

avs4x264mod - simple AviSynth pipe tool for x264
Version:, built on Aug 31 2013, 12:30:13
Usage: avs4x264mod [avs4x264mod options] [x264 options] <input>
Supported input formats: .avs .d2v: requires DGDecode.dll .dga: requires DGAVCDecode.dll .dgi: requires DGAVCDecodeDI.dll or DGDecodeNV.dll according to dgi file .vpy: try to use VSImport -> AVISource -> HBVFWSource (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
Options: -L, --x264-binary <file> User defined x264 binary path. [Default="x264_64"] --seek-mode <string> Set seek mode when using --seek. [Default="fast"] - fast: Skip process of frames before seek number as x264 does if no --tcfile-in/--qpfile specified; otherwise freeze frames before seek number to skip process, but keep frame number as-is. ( x264 treats tcfile-in/qpfile as timecodes/qpfile of input video, not output video ) Normally safe enough for randomly seekable AviSynth scripts. May break scripts which can only be linearly seeked, such as TDecimate(mode=3) - safe: Process and deliver every frame to x264. Should give accurate result with every AviSynth script. Significantly slower when the process is heavy.

[edit] Examples

avs4x264mod.exe --x264-binary "C:\x264_64-10bit.exe" --output "out.264" --input-depth 16 "in.avs"

[edit] Changelog

For a complete changelog see the GitHub commit log: http://github.com/astrataro/avs4x264mod/commits/master

[edit] External Links

Back to Utilities

Personal tools