VideoHelp Forum




+ Reply to Thread
Results 1 to 9 of 9
  1. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    Man, what is it with the big secret that no one wants to share, inside x264
    (H.264) command line "params" -- not showing or listing them, or even finding
    them on the web (via exhaustive google search) ??

    ( I was trying to figure out how to change codecs (via command-line param) for a
    test.avi encode of a Huffy; DV; Raw 411; ..even RGB; but on account of the lack
    of param listings -- I just keep getting the error that it can't encode because
    it doesn't recignise the codecs - (below) )

    >> avis [error]: unsupported input format (HFYU)
    >> avis [error]: unsupported input format (Y41P)
    >> avis [error]: unsupported input format (DVSD)
    >> avis [error]: unsupported input format (DIB )

    So, since I couldn't find them (param listing) on the web, I decided to just run
    the .exe and get a listing on my screen. But, Houstin, there is a problem..

    I still live inside windows 98 and when I issue the at the dos box, the
    PIPE commands, ( "|more" and ">" ) Example:

    x264|more
    or
    x264>param_listing.txt

    Neither one works. So, I load up CMD.EXE and give that a try. Still no works.
    All the commands/param options fly down my console screen, and I'm left at a loss

    Thanks,
    -vhelp 4105
    Quote Quote  
  2. Output is coming from stderr, not stdout. Use:

    x264 2>param_listing.txt
    Quote Quote  
  3. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    jagabo, thanks for your kind interest. However, that still doesn't work.

    A direct copy/paste of your snip shows same results in my earlier attempts..
    the screen quickly fills and (I left this fact out in first post) the
    param_listing.txt size, is zero bytes.

    I continue at the google search (most the this afternnon, now going into
    the evening night) and still nothing.

    Perhaps its my inquiry thats' at fault. I've tried all these, which does
    include visiting many of the links when I see "param" for instance.

    x264 +"params"
    x264 +"parameters"
    x264 +"param list"
    x264 +"param listing"
    x264 +"parameter list"
    x264 +"parameter listing"
    x264 +"command-line params"
    x264 +"command-line param list"

    And the list just keeps going, and going, and going.. ..
    I give up. I guess I'll stick the vdub route after all. Can't be
    all that bad.

    -vhelp 4106
    Quote Quote  
  4. Member
    Join Date
    Oct 2003
    Location
    Canada
    Search Comp PM
    Here's what I get on my Mac.
    Code:
    lees-powerbook-g4-15:~ Lee$ x264>param
    x264 core:47 svn-531
    Syntax: x264 [options] -o outfile infile [widthxheight]
    
    Infile can be raw YUV 4:2:0 (in which case resolution is required),
      or YUV4MPEG 4:2:0 (*.y4m),
      or AVI or Avisynth if compiled with AVIS support (no).
    Outfile type is selected by filename:
     .264 -> Raw bytestream
     .mkv -> Matroska
     .mp4 -> MP4 if compiled with GPAC support (no)
    
    Options:
    
      -h, --help                  Print this help
    
    Frame-type options:
    
      -I, --keyint <integer>      Maximum GOP size [250]
      -i, --min-keyint <integer>  Minimum GOP size [25]
          --scenecut <integer>    How aggressively to insert extra I-frames [40]
      -b, --bframes <integer>     Number of B-frames between I and P [0]
          --no-b-adapt            Disable adaptive B-frame decision
          --b-bias <integer>      Influences how often B-frames are used [0]
          --b-pyramid             Keep some B-frames as references
    
          --no-cabac              Disable CABAC
      -r, --ref <integer>         Number of reference frames [1]
          --nf                    Disable loop filter
      -f, --filter <alpha:beta>   Loop filter AlphaC0 and Beta parameters [0:0]
    
    Ratecontrol:
    
      -q, --qp <integer>          Set QP (0=lossless) [26]
      -B, --bitrate <integer>     Set bitrate
          --crf <integer>         Quality-based VBR (nominal QP)
          --qpmin <integer>       Set min QP [10]
          --qpmax <integer>       Set max QP [51]
          --qpstep <integer>      Set max QP step [4]
          --ratetol <float>       Allowed variance of average bitrate [1.0]
          --vbv-maxrate <integer> Max local bitrate [0]
          --vbv-bufsize <integer> Size of VBV buffer [0]
          --vbv-init <float>      Initial VBV buffer occupancy [0.9]
    
          --ipratio <float>       QP factor between I and P [1.40]
          --pbratio <float>       QP factor between P and B [1.30]
          --chroma-qp-offset <integer>  QP difference between chroma and luma [0]
    
      -p, --pass <1|2|3>          Enable multipass ratecontrol:
                                      - 1: First pass, creates stats file
                                      - 2: Last pass, does not overwrite stats file
                                      - 3: Nth pass, overwrites stats file
          --stats <string>        Filename for 2 pass stats ["x264_2pass.log"]
          --rceq <string>         Ratecontrol equation ["blurCplx^(1-qComp)"]
          --qcomp <float>         QP curve compression: 0.0 => CBR, 1.0 => CQP [0.60]
          --cplxblur <float>      Reduce fluctuations in QP (before curve compression) [20.0]
          --qblur <float>         Reduce fluctuations in QP (after curve compression) [0.5]
    
          --zones <zone0>/<zone1>/...
                                  Tweak the bitrate of some regions of the video
                                  Each zone is of the form
                                      <start frame>,<end frame>,<option>
                                      where <option> is either
                                          q=<integer> (force QP)
                                      or  b=<float> (bitrate multiplier)
    
    Analysis:
    
      -A, --analyse <string>      Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]
                                      - p8x8, p4x4, b8x8, i8x8, i4x4
                                      - none, all
                                      (p4x4 requires p8x8. i8x8 requires --8x8dct.)
          --direct <string>       Direct MV prediction mode ["spatial"]
                                      - none, spatial, temporal, auto
      -w, --weightb               Weighted prediction for B-frames
          --me <string>           Integer pixel motion estimation method ["hex"]
                                      - dia: diamond search, radius 1 (fast)
                                      - hex: hexagonal search, radius 2
                                      - umh: uneven multi-hexagon search
                                      - esa: exhaustive search (slow)
          --merange <integer>     Maximum motion vector search range [16]
      -m, --subme <integer>       Subpixel motion estimation and partition
                                      decision quality: 1=fast, 7=best. [5]
          --b-rdo                 RD based mode decision for B-frames. Requires subme 6.
          --mixed-refs            Decide references on a per partition basis
          --no-chroma-me          Ignore chroma in motion estimation
          --bime                  Jointly optimize both MVs in B-frames
      -8, --8x8dct                Adaptive spatial transform size
      -t, --trellis <integer>     Trellis RD quantization. Requires CABAC. [0]
                                      - 0: disabled
                                      - 1: enabled only on the final encode of a MB
                                      - 2: enabled on all mode decisions
          --no-fast-pskip         Disables early SKIP detection on P-frames
          --no-dct-decimate       Disables coefficient thresholding on P-frames
          --nr <integer>          Noise reduction [0]
    
          --cqm <string>          Preset quant matrices ["flat"]
                                      - jvt, flat
          --cqmfile <string>      Read quant matrices from a JM-compatible file
                                      Overrides any other --cqm* options.
          --cqm4 <list>           Set all 4x4 quant matrices
                                      Takes a comma-separated list of 16 integers.
          --cqm8 <list>           Set all 8x8 quant matrices
                                      Takes a comma-separated list of 64 integers.
          --cqm4i, --cqm4p, --cqm8i, --cqm8p
                                  Set both luma and chroma quant matrices
          --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc
                                  Set individual quant matrices
    
    Video Usability Info (Annex E):
    The VUI settings are not used by the encoder but are merely suggestions to
    the playback equipment. See doc/vui.txt for details. Use at your own risk.
    
          --sar width:height      Specify Sample Aspect Ratio
          --overscan <string>     Specify crop overscan setting ["undef"]
                                      - undef, show, crop
          --videoformat <string>  Specify video format ["undef"]
                                      - component, pal, ntsc, secam, mac, undef
          --fullrange <string>    Specify full range samples setting ["off"]
                                      - off, on
          --colorprim <string>    Specify color primaries ["undef"]
                                      - undef, bt709, bt470m, bt470bg
                                        smpte170m, smpte240m, film
          --transfer <string>     Specify transfer characteristics ["undef"]
                                      - undef, bt709, bt470m, bt470bg, linear,
                                        log100, log316, smpte170m, smpte240m
          --colormatrix <string>  Specify color matrix setting ["undef"]
                                      - undef, bt709, fcc, bt470bg
                                        smpte170m, smpte240m, GBR, YCgCo
          --chromaloc <integer>   Specify chroma sample location (0 to 5) [0]
    
    Input/Output:
    
          --level <string>        Specify level (as defined by Annex A)
          --fps <float|rational>  Specify framerate
          --seek <integer>        First frame to encode
          --frames <integer>      Maximum number of frames to encode
      -o, --output                Specify output file
    
          --threads <integer>     Parallel encoding (uses slices)
          --thread-input          Run Avisynth in its own thread
          --no-asm                Disable all CPU optimizations
          --no-psnr               Disable PSNR computation
          --quiet                 Quiet Mode
      -v, --verbose               Print stats for each frame
          --progress              Show a progress indicator while encoding
          --visualize             Show MB types overlayed on the encoded video
          --sps-id <integer>      Set SPS and PPS id numbers [0]
          --aud                   Use access unit delimiters
    Quote Quote  
  5. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    live4ever, big thanks to ya, pal. mac version is better than nothing.
    And, I can't see how there could be any difference. Lets hope not.

    Now, onto the original problem with encoding an huffy/dv/411/rgb sources.
    After reading the (latest mac ver) param list, looks like there is no
    provision for altering x264 to recignise other codecs. However, reading
    part of the param list by live4ever, the lines:

    >> Infile can be raw YUV 4:2:0 (in which case resolution is required),
    >> or YUV4MPEG 4:2:0 (*.y4m),

    ..seem to indicate that I x264 (via command-line) requires raw YUV.420
    sources. hmm.. reminds me of the mpeg2enc.exe app requireing YUV4MPEG
    images, and how I found avs2yuv. Maybe that'll work, and that's my
    whole problem -- solved. Testing..

    Another Hmm.. Now I see why GUI 's are so importnat. They help reduce
    the repetitive nonsence of guggling around various things

    I'll start with a .bat, and work my way up to a GUI of my own. Something
    with a simple drag'n drop, maybe.

    So all in all, it looks like my initial endeavor was but a missunderstanding
    with nonsense about the codec I was on about

    Will report back my success w/ avs2yuv.exe (avs2yuv.bat) in a moment.
    testing.. .. ..

    -vhelp 4107
    Quote Quote  
  6. Member vhelp's Avatar
    Join Date
    Mar 2001
    Location
    New York
    Search Comp PM
    Unfortunately, nothing is happening, except that I get the fast text dump
    to my screen, (assuming I have an error message) I can't see it!!
    So, I can't do anything about it or move further, because of this.

    I am using avs2yuv to make a raw yuv [yv12] source for x264, and I assume
    that it is working in that step successfully.

    For what its worth, I'll drop my steps here, in case someone else falls
    into this situation, they won't suffer the same fate..

    --Step 1: (the source video, opening source w/ vdub and frameserve it)
    LN1: AVI_Source -> vdub -> 1.vdr


    --Step 2: (avs_script.avs file, to read in vdub's frameserved 1.vdr source, above)
    LN2: line 1 -- x="c:\1.vdr"
    LN3: line 2 -- segmentedAVISource(x)


    Now that we have the source in AVIsynth, we compile it..

    --Step 3: (avs2yuv.bat: compiling the .avs script file into raw yuv, via avs2yuv.exe tool)
    LN4: line 1 -- avs2yuv.exe "avs_script.avs" -o "yuv.yuv"

    Where: when avs2yuv.bat is run, the output looks like this:

    >> avs_script.avs: 720x480, 30000/1001 fps, 32 frames
    >> converting RGB -> YV12


    --Step 4: (encoding the new "yuv.yuv" [yv12] source file with x264)
    LN5: x264 --bitrate 931 --progress --output "yuv.mp4" "yuv.yuv"
    LN6: x264 --bitrate 931 --progress --output "yuv.264" "yuv.yuv"


    --Step 5: (the outcome of the encode)
    n/a .. Nothing .. no decirnable error messages to view.
    Running both LN5 and LN6 produce no decirnable output messages. So, I can't
    debug the problem any further than this.



    -vhelp 4108
    Quote Quote  
  7. Here's the --longhelp text if it will help:

    x264 core:50 svn-558
    Syntax: x264 [options] -o outfile infile [widthxheight]

    Infile can be raw YUV 4:2:0 (in which case resolution is required),
    or YUV4MPEG 4:2:0 (*.y4m),
    or AVI or Avisynth if compiled with AVIS support (yes).
    Outfile type is selected by filename:
    .264 -> Raw bytestream
    .mkv -> Matroska
    .mp4 -> MP4 if compiled with GPAC support (yes)

    Options:

    -h, --help List the more commonly used options
    --longhelp List all options

    Frame-type options:

    -I, --keyint <integer> Maximum GOP size [250]
    -i, --min-keyint <integer> Minimum GOP size [25]
    --scenecut <integer> How aggressively to insert extra I-frames [40]
    -b, --bframes <integer> Number of B-frames between I and P [0]
    --no-b-adapt Disable adaptive B-frame decision
    --b-bias <integer> Influences how often B-frames are used [0]
    --b-pyramid Keep some B-frames as references
    --no-cabac Disable CABAC
    -r, --ref <integer> Number of reference frames [1]
    --nf Disable loop filter
    -f, --filter <alpha:beta> Loop filter AlphaC0 and Beta parameters [0:0]

    Ratecontrol:

    -q, --qp <integer> Set QP (0=lossless) [26]
    -B, --bitrate <integer> Set bitrate (kbit/s)
    --crf <integer> Quality-based VBR (nominal QP)
    --vbv-maxrate <integer> Max local bitrate (kbit/s) [0]
    --vbv-bufsize <integer> Enable CBR and set size of the VBV buffer (kbit) [0]
    --vbv-init <float> Initial VBV buffer occupancy [0.9]
    --qpmin <integer> Set min QP [10]
    --qpmax <integer> Set max QP [51]
    --qpstep <integer> Set max QP step [4]
    --ratetol <float> Allowed variance of average bitrate [1.0]
    --ipratio <float> QP factor between I and P [1.40]
    --pbratio <float> QP factor between P and B [1.30]
    --chroma-qp-offset <integer> QP difference between chroma and luma [0]

    -p, --pass <1|2|3> Enable multipass ratecontrol
    - 1: First pass, creates stats file
    - 2: Last pass, does not overwrite stats file
    - 3: Nth pass, overwrites stats file
    --stats <string> Filename for 2 pass stats ["x264_2pass.log"]
    --rceq <string> Ratecontrol equation ["blurCplx^(1-qComp)"]
    --qcomp <float> QP curve compression: 0.0 => CBR, 1.0 => CQP [0.60]
    --cplxblur <float> Reduce fluctuations in QP (before curve compression) [20.0]
    --qblur <float> Reduce fluctuations in QP (after curve compression) [0.5]
    --zones <zone0>/<zone1>/... Tweak the bitrate of some regions of the video
    Each zone is of the form
    <start frame>,<end frame>,<option>
    where <option> is either
    q=<integer> (force QP)
    or b=<float> (bitrate multiplier)
    --qpfile <string> Force frametypes and QPs

    Analysis:

    -A, --analyse <string> Partitions to consider ["p8x8,b8x8,i8x8,i4x4"]
    - p8x8, p4x4, b8x8, i8x8, i4x4
    - none, all
    (p4x4 requires p8x8. i8x8 requires --8x8dct.)
    --direct <string> Direct MV prediction mode ["spatial"]
    - none, spatial, temporal, auto
    -w, --weightb Weighted prediction for B-frames
    --me <string> Integer pixel motion estimation method ["hex"]
    - dia: diamond search, radius 1 (fast)
    - hex: hexagonal search, radius 2
    - umh: uneven multi-hexagon search
    - esa: exhaustive search (slow)
    --merange <integer> Maximum motion vector search range [16]
    -m, --subme <integer> Subpixel motion estimation and partition
    decision quality: 1=fast, 7=best. [5]
    --b-rdo RD based mode decision for B-frames. Requires subme 6.
    --mixed-refs Decide references on a per partition basis
    --no-chroma-me Ignore chroma in motion estimation
    --bime Jointly optimize both MVs in B-frames
    -8, --8x8dct Adaptive spatial transform size
    -t, --trellis <integer> Trellis RD quantization. Requires CABAC. [0]
    - 0: disabled
    - 1: enabled only on the final encode of a MB
    - 2: enabled on all mode decisions
    --no-fast-pskip Disables early SKIP detection on P-frames
    --no-dct-decimate Disables coefficient thresholding on P-frames
    --nr <integer> Noise reduction [0]

    --cqm <string> Preset quant matrices ["flat"]
    - jvt, flat
    --cqmfile <string> Read custom quant matrices from a JM-compatible file
    Overrides any other --cqm* options.
    --cqm4 <list> Set all 4x4 quant matrices
    Takes a comma-separated list of 16 integers.
    --cqm8 <list> Set all 8x8 quant matrices
    Takes a comma-separated list of 64 integers.
    --cqm4i, --cqm4p, --cqm8i, --cqm8p
    Set both luma and chroma quant matrices
    --cqm4iy, --cqm4ic, --cqm4py, --cqm4pc
    Set individual quant matrices

    Video Usability Info (Annex E):
    The VUI settings are not used by the encoder but are merely suggestions to
    the playback equipment. See doc/vui.txt for details. Use at your own risk.

    --overscan <string> Specify crop overscan setting ["undef"]
    - undef, show, crop
    --videoformat <string> Specify video format ["undef"]
    - component, pal, ntsc, secam, mac, undef
    --fullrange <string> Specify full range samples setting ["off"]
    - off, on
    --colorprim <string> Specify color primaries ["undef"]
    - undef, bt709, bt470m, bt470bg
    smpte170m, smpte240m, film
    --transfer <string> Specify transfer characteristics ["undef"]
    - undef, bt709, bt470m, bt470bg, linear,
    log100, log316, smpte170m, smpte240m
    --colormatrix <string> Specify color matrix setting ["undef"]
    - undef, bt709, fcc, bt470bg
    smpte170m, smpte240m, GBR, YCgCo
    --chromaloc <integer> Specify chroma sample location (0 to 5) [0]

    Input/Output:

    -o, --output Specify output file
    --sar width:height Specify Sample Aspect Ratio
    --fps <float|rational> Specify framerate
    --seek <integer> First frame to encode
    --frames <integer> Maximum number of frames to encode
    --level <string> Specify level (as defined by Annex A)

    -v, --verbose Print stats for each frame
    --progress Show a progress indicator while encoding
    --quiet Quiet Mode
    --no-psnr Disable PSNR computation
    --no-ssim Disable SSIM computation
    --threads <integer> Parallel encoding (uses slices)
    --thread-input Run Avisynth in its own thread
    --no-asm Disable all CPU optimizations
    --visualize Show MB types overlayed on the encoded video
    --sps-id <integer> Set SPS and PPS id numbers [0]
    --aud Use access unit delimiters
    Quote Quote  
  8. Member
    Join Date
    Dec 2004
    Location
    Australia
    Search Comp PM
    Why not just use AVISynth with avisource() as input? Much easier and faster. Even before x264 got avs support, you could pipe from avs2yuv rather than creating a file.

    Also if I recall there was a patch for creating a build with libavcodec/format for input. That would allow huffyuv and DV input directly. Could also use ffmpeg, since it can output using x264. But then ffmpeg's commandline args are even more complicated/elusive.
    Quote Quote  
  9. Member AlanHK's Avatar
    Join Date
    Apr 2006
    Location
    Hong Kong
    Search Comp PM
    Originally Posted by vhelp
    Unfortunately, nothing is happening, except that I get the fast text dump
    to my screen, (assuming I have an error message) I can't see it!!
    So, I can't do anything about it or move further, because of this.
    I found this by your link from another post, so just for the record:

    A quick way to extract such output is to use "strings", a command line app that filters out text from random files.

    Get it here

    then
    strings -a x264.exe >x264.txt
    ( -a is ASCII, otherwise it looks for Unicode)

    That gives you a 100k text file; open it with your favorite editor, just scroll down past the gibberish till you find the help text, or search for likely words, like "help", to jump to the right part.

    You could also just open the exe in a text editor, especially for a small file, but x264.exe is 900K and strings cuts out 90% of that.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!