VideoHelp Forum




+ Reply to Thread
Results 1 to 7 of 7
  1. Member
    Join Date
    Apr 2012
    Location
    Hungary
    Search PM
    I have an Intel i5 3210M CPU with Intel HD4000 in my laptop. Is there any speed up options for this setup when encoding my video projects to MP4? I have used x264.exe so far. As I know that one automatically chooses all the threads available (my machine has 4). But maybe this is false. If false, what is the parameter to set the number of threads to be used? I also read somewhere, that this coder has an opencl parameter as well, but as I know it does not support Intel HD4000, so I cannot make use of that.

    Could the conversion time be reduced compared to x264.exe if I used ffmpeg with this setup? I have never used the ffmpeg CLI, I have no clue what speed up options are available there.
    Quote Quote  
  2. Member
    Join Date
    Mar 2008
    Location
    United States
    Search Comp PM
    you can use a faster preset in either case. For example, in x264.exe
    Code:
    --preset "veryfast"
    Quote Quote  
  3. Member
    Join Date
    Apr 2012
    Location
    Hungary
    Search PM
    Originally Posted by davexnet View Post
    you can use a faster preset in either case. For example, in x264.exe
    Code:
    --preset "veryfast"
    I forgot to include that I am searching for options that don't result in quality loss when used.
    Quote Quote  
  4. Originally Posted by Bencuri View Post
    I forgot to include that I am searching for options that don't result in quality loss when used.
    quality loss vs encoding speed depend on bitrate - if your goal is to provide maximum quality and at the same time lowest possible bitrate then you need to sacrifice time - a lot of time - this is primary rule of encoding since 40 years or more...

    If you can accept higher bitrate then you have possibility to speedup encoding.

    You can also try instead pure software encoder to use Intel hardware/hybrid mode encoding - try https://www.videohelp.com/software/QSVEnc or QSV in ffmpeg (not sure if your CPU support Vulkan but seem there are some work to offer Vulkan accelerated encoding in ffmpeg recently so it is possible to use 'h264_qsv' and 'h264_vulkan' in recent ffmpeg builds, also DirectX accelerated encoding is available: 'h264_d3d12va').

    You need to assume that hw accelerated encoders need slightly higher bitrate (10..30%) to deliver same quality as pure software encoders but speed gain can be enormous - it is up to you to operate within area limited by 3 points: encoding speed, bitrate, quality.
    Quote Quote  
  5. Member
    Join Date
    Apr 2012
    Location
    Hungary
    Search PM
    Originally Posted by pandy View Post
    Originally Posted by Bencuri View Post
    I forgot to include that I am searching for options that don't result in quality loss when used.
    quality loss vs encoding speed depend on bitrate - if your goal is to provide maximum quality and at the same time lowest possible bitrate then you need to sacrifice time - a lot of time - this is primary rule of encoding since 40 years or more...

    If you can accept higher bitrate then you have possibility to speedup encoding.

    You can also try instead pure software encoder to use Intel hardware/hybrid mode encoding - try https://www.videohelp.com/software/QSVEnc or QSV in ffmpeg (not sure if your CPU support Vulkan but seem there are some work to offer Vulkan accelerated encoding in ffmpeg recently so it is possible to use 'h264_qsv' and 'h264_vulkan' in recent ffmpeg builds, also DirectX accelerated encoding is available: 'h264_d3d12va').

    You need to assume that hw accelerated encoders need slightly higher bitrate (10..30%) to deliver same quality as pure software encoders but speed gain can be enormous - it is up to you to operate within area limited by 3 points: encoding speed, bitrate, quality.
    To be more exact, on the speed up what I am talking about I meant something like what Vegas uses. If it would be possible to replicate it. Vegas has a rendering option called Sony AVC, if you use that one and not the Main Concept AVC option, it does the encoding much much faster. You can select the encoding hardware resource on the rendering panel, if you set it to automatic (the other two are CPU or GPU only), you get the encoding speed increase. That would be great if something like that could be replicated in a CLI. As I mentioned using the GPU is not possible with x264.exe with my hardware (at least not with the versions that I tired).

    I don't know anything about the mechanism how the speed up is achieved in Vegas, but it can do it. I guess it uses OpenCL + CPU, doesn't it?
    Quote Quote  
  6. I have the same Intel CPU in my notebook. The CPU has a GPU (HD4000) by Intel, which can encode videos in h264 with hardware acceleration.
    It is much faster than encoding with your CPU. For a preview video it is okay. If you want more quality, the only way is software encoding with x264.
    Your CPU has 2 cores, which can use 4 threads. The hardware encoding with gpu is much faster, but produce less quality than encoding with x264.
    A good tool for conversion is handbrake from www.handbrake.fr. It supports software and gpu hardware encoding for Intel, NVIDIA and AMD GPUs.
    A very useful tool with powerful options for video quality and also good for beginners.

    https://www.videohelp.com/software/HandBrake
    Quote Quote  
  7. Originally Posted by Bencuri View Post
    To be more exact, on the speed up what I am talking about I meant something like what Vegas uses. If it would be possible to replicate it. Vegas has a rendering option called Sony AVC, if you use that one and not the Main Concept AVC option, it does the encoding much much faster. You can select the encoding hardware resource on the rendering panel, if you set it to automatic (the other two are CPU or GPU only), you get the encoding speed increase. That would be great if something like that could be replicated in a CLI. As I mentioned using the GPU is not possible with x264.exe with my hardware (at least not with the versions that I tired).

    I don't know anything about the mechanism how the speed up is achieved in Vegas, but it can do it. I guess it uses OpenCL + CPU, doesn't it?
    So your goal is intra coding - you can substantially speedup encoding by eliminating large set of time consuming operations - but bitrate in such case growing also significantly thus quality is hold.

    Let say this is your goal:
    https://en.wikipedia.org/wiki/AVC-Intra?useskin=vector
    https://resources.avid.com/SupportFiles/attach/FAQ_AVC-Intra.pdf

    I used in past something like:
    Code:
    @ffmbc -i %1 -vcodec libx264 -crf 1 -profile HIGH422 -preset ultrafast -tune fastdecode -x264opts "keyint=1:constrained_intra=1:cabac=0:ref=0:sliced_threads=0:threads=4:psy=0" -f mpegts -psnr %1.trp
    ffmbc is for of ffmpeg focused on broadcast technologies https://github.com/bcoudurier/FFmbc

    but ffmbc is quite old and outdated then yo may consider to use ffmpeg with something like:

    Code:
    @setlocal
    @REM Where to Find ffmpeg
    @set FF=%CD%
    @set PATH=%FF%;%PATH%
    
    @rem set /p qpval=Enter QP value (e.g 16, reasonable range 8 - 24, lower = higher quality and higher bitrate): 
    
    @set qpval=16
    @echo QP value is: %qpval%
    
    @SET x264opts="qp=%qpval%:qpmin=4:level=4.1:ref=0:bframes=0:no-chroma-me=1:subme=2:open_gop=0:keyint=2:sliced_threads=0:slices=-1:bluray_compat=1:pic_struct=1:aud=1:force_cfr=1:cabac=0:threads=auto:no_psnr=1:no_ssim=1:colorprim=bt709:transfer=bt709:colormatrix=bt709:stitchable=1:constrained_intra=0:no-psy=1:scenecut=0:no-deblock=1:aq-mode=0:ipratio=1.1"
    
    @ffmpeg.exe -y -hide_banner -v 32 -i "%1" -an -c:v libx264 -preset:v ultrafast -tune:v fastdecode -profile:v high444 -x264opts %x264opts% -x264-params %x264opts% -f mpegts "%~n1_.ts"
    @pause
    This is not pure intra as it use P frames anyway but you can force pure intra by setting 'keyint=1', also you may change profile to more optimal from your source perspective (like 422).

    Also x264 support avc intra - there are at least two options to control this kind of encoding:

    Code:
          --avcintra-class <integer> Use compatibility hacks for AVC-Intra class
                                      - 50, 100, 200, 300, 480
          --avcintra-flavor <string> AVC-Intra flavor ["panasonic"]
                                      - panasonic, sony
    You can use ffmpeg with this options.
    https://superuser.com/questions/1675504/ffmpeg-and-avc-intra-class-100-1080p-59-94-60p

    As i don't use Vegas then i can't say what type of HW acceleration is used but generally you have three possibilities:
    - pure HW encoder - dedicated HW block performing encoding - this is usually part of graphic unit - Intel for example offered this under name QSV,
    - pure software but using genera GPU processing (trough OpenCl or similar)
    - hybrid mode using some CPU power, perhaps some GPU and dedicated HW block - usually this approach delivers higher quality but also speedup is lower than two earlier mentioned methods.
    Last edited by pandy; 6th Jan 2026 at 12:17.
    Quote Quote  



Similar Threads

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