VideoHelp Forum




+ Reply to Thread
Results 1 to 9 of 9
  1. hi, currently I use this command to convert to mp4

    Code:
    ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i "%~1" -c:v hevc_nvenc -preset slow "%~dpn1.mp4"
    I use this code may be over 3 years, maybe this code is outdated,
    is there any better command to convert file to mp4 with:
    1. no noticeable quality reduce
    2. Better Compression(smaller size),
    3. Using GPU acceleration,
    4. Faster Compression

    Thanks for reading, have a nice day
    Quote Quote  
  2. I'm a Super Moderator johns0's Avatar
    Join Date
    Jun 2002
    Location
    canada
    Search Comp PM
    Better encoding would be using your cpu instead of your video card.
    I think,therefore i am a hamster.
    Quote Quote  
  3. 1,2,3 and 4 are all possible. Just not together.
    e.g. quality reduction is a trade off for compression (file size), GPU is faster than CPU but still doesn't give better quality vs bitrate.
    Quote Quote  
  4. thank you for all reply,
    let said point 1 and 2 is the highest priority and 3 and 4 are optional,

    I hear h266 Is released for FFmpeg, and CUDA encoding may have better software,
    maybe there is an update command that is better than my command,

    any other replies are still welcome
    Quote Quote  
  5. let said point 1 and 2 is the highest priority and 3 and 4 are optional,
    Right now the best quality at reasonable bitrates and speed is the CPU based x265 encoder, x264 is close behind.
    GPU encodes are very good now but at higher bitrates (larger file sizes for you).

    I hear h266 Is released for FFmpeg, and CUDA encoding may have better software,
    maybe there is an update command that is better than my command
    h266 is more complex and always will be slower to encode than h264 and h265
    Quote Quote  
  6. thank for the reply blud7,
    so, my command is still best until right now?
    Quote Quote  
  7. There's no best. There's just different compromises. Generally, quality decreases as encoding speed increases. And quality decreases as the bitrate decreases So you can only have two of 1) fast encoding, 2) small file size, 3) high quality, but not all three. You pick the compromise settings that you can live with. Your command line is just using the default settings for the "slow" preset. There are also many individual settings you can change for the hevc_nvenc encoder:

    Code:
    ffmpeg -? encoder=hevc_nvenc
    
    Encoder hevc_nvenc [NVIDIA NVENC hevc encoder]:
        General capabilities: delay hardware 
        Threading capabilities: none
        Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda d3d11
    hevc_nvenc AVOptions:
      -preset            <int>        E..V..... Set the encoding preset (from 0 to 11) (default medium)
         default                      E..V..... 
         slow                         E..V..... hq 2 passes
         medium                       E..V..... hq 1 pass
         fast                         E..V..... hp 1 pass
         hp                           E..V..... 
         hq                           E..V..... 
         bd                           E..V..... 
         ll                           E..V..... low latency
         llhq                         E..V..... low latency hq
         llhp                         E..V..... low latency hp
         lossless                     E..V..... lossless
         losslesshp                   E..V..... lossless hp
      -profile           <int>        E..V..... Set the encoding profile (from 0 to 4) (default main)
         main                         E..V..... 
         main10                       E..V..... 
         rext                         E..V..... 
      -level             <int>        E..V..... Set the encoding level restriction (from 0 to 186) (default auto)
         auto                         E..V..... 
         1                            E..V..... 
         1.0                          E..V..... 
         2                            E..V..... 
         2.0                          E..V..... 
         2.1                          E..V..... 
         3                            E..V..... 
         3.0                          E..V..... 
         3.1                          E..V..... 
         4                            E..V..... 
         4.0                          E..V..... 
         4.1                          E..V..... 
         5                            E..V..... 
         5.0                          E..V..... 
         5.1                          E..V..... 
         5.2                          E..V..... 
         6                            E..V..... 
         6.0                          E..V..... 
         6.1                          E..V..... 
         6.2                          E..V..... 
      -tier              <int>        E..V..... Set the encoding tier (from 0 to 1) (default main)
         main                         E..V..... 
         high                         E..V..... 
      -rc                <int>        E..V..... Override the preset rate-control (from -1 to INT_MAX) (default -1)
         constqp                      E..V..... Constant QP mode
         vbr                          E..V..... Variable bitrate mode
         cbr                          E..V..... Constant bitrate mode
         vbr_minqp                    E..V..... Variable bitrate mode with MinQP (deprecated)
         ll_2pass_quality              E..V..... Multi-pass optimized for image quality (deprecated)
         ll_2pass_size                E..V..... Multi-pass optimized for constant frame size (deprecated)
         vbr_2pass                    E..V..... Multi-pass variable bitrate mode (deprecated)
         cbr_ld_hq                    E..V..... Constant bitrate low delay high quality mode
         cbr_hq                       E..V..... Constant bitrate high quality mode
         vbr_hq                       E..V..... Variable bitrate high quality mode
      -rc-lookahead      <int>        E..V..... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
      -surfaces          <int>        E..V..... Number of concurrent surfaces (from 0 to 64) (default 0)
      -cbr               <boolean>    E..V..... Use cbr encoding mode (default false)
      -2pass             <boolean>    E..V..... Use 2pass encoding mode (default auto)
      -gpu               <int>        E..V..... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
         any                          E..V..... Pick the first device available
         list                         E..V..... List the available devices
      -delay             <int>        E..V..... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
      -no-scenecut       <boolean>    E..V..... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
      -forced-idr        <boolean>    E..V..... If forcing keyframes, force them as IDR frames. (default false)
      -spatial_aq        <boolean>    E..V..... set to 1 to enable Spatial AQ (default false)
      -temporal_aq       <boolean>    E..V..... set to 1 to enable Temporal AQ (default false)
      -zerolatency       <boolean>    E..V..... Set 1 to indicate zero latency operation (no reordering delay) (default false)
      -nonref_p          <boolean>    E..V..... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
      -strict_gop        <boolean>    E..V..... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
      -aq-strength       <int>        E..V..... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
      -cq                <float>      E..V..... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
      -aud               <boolean>    E..V..... Use access unit delimiters (default false)
      -bluray-compat     <boolean>    E..V..... Bluray compatibility workarounds (default false)
      -init_qpP          <int>        E..V..... Initial QP value for P frame (from -1 to 51) (default -1)
      -init_qpB          <int>        E..V..... Initial QP value for B frame (from -1 to 51) (default -1)
      -init_qpI          <int>        E..V..... Initial QP value for I frame (from -1 to 51) (default -1)
      -qp                <int>        E..V..... Constant quantization parameter rate control method (from -1 to 51) (default -1)
      -weighted_pred     <int>        E..V..... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
      -b_ref_mode        <int>        E..V..... Use B frames as references (from 0 to 2) (default disabled)
         disabled                     E..V..... B frames will not be used for reference
         each                         E..V..... Each B frame will be used for reference
         middle                       E..V..... Only (number of B frames)/2 will be used for reference
    Last edited by jagabo; 25th Feb 2022 at 09:12.
    Quote Quote  
  8. Image
    [Attachment 63547 - Click to enlarge]


    Can I ask please why not record in mp4 in the first place? easy with the Panasonic HC-X1500,
    from

    Image
    [Attachment 63548 - Click to enlarge]
    Last edited by realspeed; 25th Feb 2022 at 10:31. Reason: addition
    Quote Quote  
  9. thank you for all your replies,
    so, what do you all suggest?
    keep my command or is there any better command?
    the priority is 1, 2, 3 then 4
    Quote Quote  



Similar Threads

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