VideoHelp Forum




+ Reply to Thread
Page 73 of 74
FirstFirst ... 23 63 71 72 73 74 LastLast
Results 2,161 to 2,190 of 2219
  1. Originally Posted by Findu View Post
    EDIT:
    Re-tesed HW acceleration with ffmpeg 7.1.1 (March 2025)
    HW auto defaults to dxva2. d3d11va is similarly fast.
    Depending on the input, "HW scan for errors" lose 50-80% of the speed compared to 12 CPU threads.
    SW encoding lose 10-20% in combination with HW decoding.
    HW encoding lose 35-45% in combination with HW decoding.
    Still faster than my old 660 Ti with a fraction of the energy.
    Retest your Ryzen
    Close clever FFmpeg-GUI and copy the BT_open.txt below into your target folder.
    Edit it and replace all occurences of
    Full_path\Test.mp4
    with
    your test video name, including the full path.
    Save the file.

    Start clever FFmpeg-GUI, main page, batch tasks.
    Deselect all, select the first task only, click execute. Note the speed. You can abort the task after 10 sec.
    Deselect all, select the 2nd task only, click execute. Note the speed.
    Aso.
    Report the results.

    BTW:
    Do you have more than one GPU?
    Image Attached Files
    Quote Quote  
  2. Originally Posted by videoAI View Post
    Hardware acceleration leverages the GPU or other specialized hardware to offload processing tasks from the CPU,
    resulting in faster and more efficient processing.

    Hardware Acceleration for *** Decoding ***
    Uses the GPU to decode video streams, which can significantly speed up the process, especially for high-resolution videos.

    FFmpeg supports various hardware acceleration APIs, such as NVDEC / VDPAU (NVIDIA), and VAAPI / QSV (Intel).
    VDPAU (Video Decode and Presentation API for Unix) is a library and API for video decode acceleration on Unix-like operating systems.

    Decoding with NVDEC / VDPAU (NVIDIA)
    Need to have the appropriate NVIDIA drivers and FFmpeg built with NVDEC / VDPAU support.
    Code:
    ffmpeg -hwaccel nvdec -i input.mp4 -c:v copy -f null -
    ffmpeg -hwaccel vdpau -c:v vdpau -i input.mp4 -f null -
    Decoding with VAAPI / QSV (Intel)
    Need to have the appropriate Intel drivers and FFmpeg built with VAAPI / QSV support.
    Code:
    ffmpeg -hwaccel vaapi -i input.mp4 -c:v copy -f null -
    ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -c:v rawvideo -pix_fmt nv12 output.yuv
    Hardware Acceleration for *** Encoding ***
    Uses the GPU to encode video streams, which can be much faster than software encoding, especially for high-resolution videos.

    FFmpeg supports various hardware acceleration APIs for encoding, such as NVENC (NVIDIA), VAAPI (Intel), and QSV (Intel Quick Sync Video).

    Encoding with NVENC (NVIDIA)
    Need to have the appropriate NVIDIA drivers and FFmpeg built with NVENC support.
    Code:
    ffmpeg -i input.mp4 -c:v h264_nvenc -preset slow -b:v 5M output.mp4
    Encoding with VAAPI / QSV (Intel)
    Need to have the appropriate Intel drivers and FFmpeg built with VAAPI / QSV support.
    Code:
    ffmpeg -i input.mp4 -c:v h264_vaapi -preset slow -b:v 5M output.mp4
    ffmpeg -i input.mp4 -c:v h264_qsv -preset veryfast -b:v 2M -c:a copy output.mp4
    Combining Decoding and Encoding with Hardware Acceleration
    Useful for transcoding videos efficiently.

    Transcoding with NVDEC and NVENC (NVIDIA)
    Code:
    ffmpeg -hwaccel nvdec -i input.mp4 -c:v h264_nvenc -preset slow -b:v 5M output.mp4
    AMD hardware acceleration, using the h264_amf and hevc_amf encoders for encoding and decoding. Make sure the necessary AMD drivers and FFmpeg build with AMF support are installed on your system.

    *** Decoding *** with AMD Hardware Acceleration
    Code:
    ffmpeg -hwaccel amf -c:v h264_amf -i input.mp4 -c:v copy output.mp4
    ffmpeg -hwaccel amf -c:v hevc_amf -i input.mp4 -c:v copy output.mp4
    *** Encoding *** with AMD Hardware Acceleration
    Code:
    ffmpeg -i input.mp4 -c:v h264_amf -preset fast -b:v 2M output.mp4
    ffmpeg -i input.mp4 -c:v hevc_amf -preset fast -b:v 2M output.mp4
    Use:
    Code:
    ffmpeg -hide_banner -hwaccels
    to list all Hardware acceleration methods
    ex:
    cuda
    vaapi
    dxva2
    qsv
    d3d11va
    opencl
    vulkan
    d3d12va

    HWA; Supported Hardware
    --------------------------------
    CUDA; NVIDIA GPUs
    VA-API; Intel integrated GPUs, AMD GPUs
    DXVA2; Windows systems with compatible GPUs (NVIDIA, AMD, Intel)
    QSV; Intel integrated GPUs
    D3D11VA; Windows systems with compatible GPUs (NVIDIA, AMD, Intel)
    OpenCL; Wide range of GPUs and CPUs (NVIDIA, AMD, Intel, etc.)
    Vulkan; Wide range of GPUs (NVIDIA, AMD, Intel, etc.)
    D3D12VA; Windows systems with compatible GPUs (NVIDIA, AMD, Intel)
    Wow, I didn't know there are so many ways ffmpeg can be used. Thanks.

    I have been using this:

    -c:v hevc_qsv -preset slow -global_quality 21 -look_ahead 1

    DVDs work all the time. Blurays often result in the "not enough memory allocated" error.
    Quote Quote  
  3. @ ProWo

    Here the results:

    22,4 -hwaccel dxva2
    24,5 -hwaccel dxva2 -hwaccel_output_format dxva2_vld
    23,7 -hwaccel d3d11va
    24,2 -hwaccel d3d11va -hwaccel_output_format d3d11
    46,3 -hwaccel d3d12va
    46,1 -hwaccel d3d12va -hwaccel_output_format d3d12

    46,1 -CPU only

    [h264 @ 000001681fa9b140] D3D12 video decode on this device requires tier 1 support, but it is not implemented.
    [h264 @ 000001681fa9b140] Failed setup for format d3d12: hwaccel initialisation returned error.

    I still have an old Nvidia GTX 660 Ti, but ffmpeg-5.1.2-full_build is the last version supporting HW acceleration for it.
    Quote Quote  
  4. Originally Posted by Findu View Post
    Here the results:

    22,4 -hwaccel dxva2
    24,5 -hwaccel dxva2 -hwaccel_output_format dxva2_vld
    23,7 -hwaccel d3d11va
    24,2 -hwaccel d3d11va -hwaccel_output_format d3d11
    46,3 -hwaccel d3d12va
    46,1 -hwaccel d3d12va -hwaccel_output_format d3d12

    46,1 -CPU only

    [h264 @ 000001681fa9b140] D3D12 video decode on this device requires tier 1 support, but it is not implemented.
    [h264 @ 000001681fa9b140] Failed setup for format d3d12: hwaccel initialisation returned error.

    I still have an old Nvidia GTX 660 Ti, but ffmpeg-5.1.2-full_build is the last version supporting HW acceleration for it.
    Thx for testing.
    As we see, there is no benefit with specifying the output format, neither with your AMD environment, nor with my Intel environment.
    The d3d12va does'nt work with you and falls back to CPU only.
    So the best setting for you is none (no HWA).

    Just out of curiosity:
    Could you test your nVidia with the following command part, to see if there is any benefit or not?
    -hwaccel_device 1 -hwaccel cuda
    Quote Quote  
  5. @davidt

    -global_quality
    Usage: Typically used with hardware-accelerated encoders like hevc_qsv (Intel Quick Sync Video) and h264_qsv.
    Purpose: Controls the overall quality of the encoded video. Lower values result in higher quality but larger file sizes.
    Range: The range of values can vary depending on the encoder, but generally,
    it ranges from 0 to 51, with 0 being the highest quality and 51 being the lowest.
    Example: -global_quality 21

    -crf
    Usage: Typically used with software encoders like libx264 (H.264) and libx265 (H.265/HEVC).
    Purpose: Controls the quality of the encoded video by setting a constant rate factor.
    Lower values result in higher quality but larger file sizes.
    Range: The range of values is typically from 0 to 51, with 0 being the highest quality and 51 being the lowest.
    Commonly used values are between 18 and 28.
    Example: -crf 23

    Comparison
    Encoder Compatibility: -global_quality is used with hardware-accelerated encoders, while -crf is used with software encoders.
    Quality Control: Both options allow you to control the quality of the encoded video, but they are implemented differently and are specific to the encoder being used.

    Originally Posted by davidt1 View Post
    Originally Posted by videoAI View Post
    Wow, I didn't know there are so many ways ffmpeg can be used. Thanks.
    I have been using this:
    -c:v hevc_qsv -preset slow -global_quality 21 -look_ahead 1
    As always .. there is nothing wrong with my environment
    Quote Quote  
  6. @ ProWo
    3.4.3.11 Feedback

    So .. I gave the new 'batch scan for errors' feature another look from the point of view of functionality
    and ease of use.

    1- Currently, a user scanning a number of files for errors/damage/corruption isn't interested in good files.
    these files should be removed from the batch grid after processing, which they are.
    but how about the damaged ones, shouldn't they be counted [currently there is no counter], and retained
    in the grid for further processing [re-muxing, re-encoding, etc]. currently they are not. The way it works now
    is; after the scan you end up with a number of text files but no way of importing the identified video files back
    into clever.

    There is also no repair feature available. No support for folders, or subfolders. What would you recommend
    the user do to repair the damaged files?

    2- if a user has a laptop with no HA or GPU, the scan process will be painfully slow for a large number of tasks.
    would any of these ideas make sense?
    - A scan pause/resume, or start/resume at a specific idx#.
    - Divide batch into pools [ex; 1-500, 500-1000, etc]

    BTW, Corrupt Video Inspector currently supports folders, subfolders, color counter for damaged files, and a start at index no. as features.

    Having said that .. let me add that the effort that was put into adding, improving, and testing this feature
    was much appreciated and a lot of users like it and want to use it.

    Thanks again and keep up the tremendous work.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  7. Originally Posted by videoAI View Post
    1- Currently, a user scanning a number of files for errors/damage/corruption isn't interested in good files.
    these files should be removed from the batch grid after processing, which they are.
    but how about the damaged ones, shouldn't they be counted [currently there is no counter], and retained
    in the grid for further processing [re-muxing, re-encoding, etc]. currently they are not. The way it works now
    is; after the scan you end up with a number of text files but no way of importing the identified video files back
    into clever.
    Not right. You can re-import any video file at any time, either as a single file, with which all actions are possible, or into the mux/join grid, into which several files can be imported.

    There is also no repair feature available. No support for folders, or subfolders. What would you recommend
    the user do to repair the damaged files?
    There is no repair feature, because that depends on the errors.
    Some errors may be repaired with a simple remux, others may need other solutions and some may not be repaired at all.

    A simple remux is also possible in batch mode.
    To do this, load the first file into the mux grid, select only its streams and deselect any other streams that may be present.
    Then click the simple remux checkbox and then “To batch”.
    Click batch tasks, the batch just created is available as batch 0.
    Now you can drag all other files for which you want a simple remux into the grid.
    Confirm the note that the command line of batch 0 will be taken over and click execute.
    All files in the grid will now be remuxed one after the other.

    2- if a user has a laptop with no HA or GPU, the scan process will be painfully slow for a large number of tasks.
    would any of these ideas make sense?
    - A scan pause/resume, or start/resume at a specific idx#.
    - Divide batch into pools [ex; 1-500, 500-1000, etc]
    Such a solution has already been implemented.
    For example, if you import 100 files for the batch scan for errors, select the first 20 and click execute.
    Then only the first 20 files are scanned; when this is finished, the program is closed/the computer is shut down (depending on the checkbox), or simply waits with the remaining 80 files for further actions.
    In addition, each scan can be aborted at any time, which also interrupts the batch process.
    Quote Quote  
  8. @ ProWo
    3.4.3.11 Feedback

    1- my current target folder = source
    2- my target folder in settings = 'c:\t\mp4'

    I noticed when I join 2 files, the joined file is saved in my Clever App folder !!

    Is this intentional? Care to explain?

    Thanks again and keep up the good work.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  9. Originally Posted by videoAI View Post
    1- my current target folder = source
    2- my target folder in settings = 'c:\t\mp4'
    I noticed when I join 2 files, the joined file is saved in my Clever App folder !!
    Is this intentional? Care to explain?
    Do you have write access to the folder from which the two files for joining come?
    For example, if you want to join two VOB files from a DVD,
    then the DVD (the source of the two VOBs) cannot be written to.
    Quote Quote  
  10. Yes I do.

    Edit: just tried it again ..

    Image
    [Attachment 87753 - Click to enlarge]


    Originally Posted by ProWo View Post
    Originally Posted by videoAI View Post
    I noticed when I join 2 files, the joined file is saved in my Clever App folder !!
    Is this intentional? Care to explain?
    Do you have write access to the folder from which the two files for joining come?
    Last edited by videoAI; 8th Jul 2025 at 10:28.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  11. @ProWo

    Edit #2; if I toggle my default folder away from source to target, all works fine.
    which means; the bug is in the source folder [as default] code.

    More info:
    - if I choose to name the target file, the output joined file [xxx_Joined] is saved to my source folder
    [correctly, because it is my target {output} folder]; which means I do indeed have access to the folder.

    Assigning this bug as #8.

    Edit #1: Tried 2 different files from another input folder. Same issue/bug.

    P.S. I do have full admin access to all my selected folders.
    None of them is located at the root [c:\] or within the Windows protected sphere.

    Originally Posted by videoAI View Post
    Yes I do [have access]
    Edit: just tried it again ..
    Originally Posted by ProWo View Post
    Do you have write access to the folder from which the two files for joining come?
    Last edited by videoAI; 8th Jul 2025 at 11:46.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  12. Originally Posted by videoAI View Post
    1- my current target folder = source
    2- my target folder in settings = 'c:\t\mp4'
    I noticed when I join 2 files, the joined file is saved in my Clever App folder !!
    Is this intentional? Care to explain?
    Thanks for the hint.
    Is fixed now.
    Quote Quote  
  13. Confirmed.
    Bug#8 [saving joined file] fixed.

    Thanks for the prompt action .. much appreciated.
    Keep up the good work .. and, kindly, stop asking me about my environment

    Originally Posted by ProWo View Post
    Originally Posted by videoAI View Post
    Thanks for the hint.
    Is fixed now.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  14. Tips for Faster Encoding

    Code:
    ffmpeg -i input.mp4 -c:v libx264 -x264-params slices=4 -threads 4 output.mp4
    -x264-params slices=4: This sets the number of slices to 4.
    Slices are portions of a frame that can be encoded independently. Increasing the number of slices
    can improve parallel processing and speed up encoding, especially on multi-core processors.

    -threads 4: This sets the number of threads to use for encoding. Using multiple threads can
    significantly speed up the encoding process by utilizing multiple CPU cores.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  15. Originally Posted by videoAI View Post
    Tips for Faster Encoding
    Code:
    ffmpeg -i input.mp4 -c:v libx264 -x264-params slices=4 -threads 4 output.mp4
    Tested, no speed increase, even slightly slower (with slices:4) and even slower if you add -threads 4.
    Tested on my Intel I7 8 cores.
    Without these additional parameters all 8 cores are automatically used.
    Quote Quote  
  16. try this optimized code:
    Code:
    ffmpeg -i input.mp4 -c:v libx264 -preset fast -tune film -x264-params slices=8 -threads 8 output.mp4
    Explanation:
    -preset fast: This preset balances speed and compression efficiency.
    -tune film: This tune parameter is suitable for general video content.
    -x264-params slices=8: This parameter sets the number of slices to 8, which can help with parallel processing.
    -threads 8: This parameter sets the number of threads to 8, fully utilizing the 8 cores of the Intel i7.

    Originally Posted by ProWo View Post
    Originally Posted by videoAI View Post
    Tips for Faster Encoding
    Code:
    ffmpeg -i input.mp4 -c:v libx264 -x264-params slices=4 -threads 4 output.mp4
    Tested, no speed increase, even slightly slower (with slices:4) and even slower if you add -threads 4.
    Tested on my Intel I7 8 cores.
    Without these additional parameters all 8 cores are automatically used.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  17. I have a low end AMD Ryzen 3 3250U [mobile processor that features 2 cores and 4 threads], that's why i used these commands.

    With switches:
    Code:
    ffmpeg -loglevel warning -i "%%f" -c:v libx264 -x264-params slices=4 -threads 4 -c:a aac -err_detect ignore_err -y "%%~nf_ok%%~xf"
    Start at 14:29:35.91
    End at 14:32:18.62
    Duration ~ 2:78 mins [a little faster]

    Without switches:
    Code:
    ffmpeg -loglevel warning -i "%%f" -c:v libx264 -c:a aac -err_detect ignore_err -y "%%~nf_ok%%~xf"
    Start at 14:36:44.77
    End at 14:39:22.84
    Duration ~ 2:83 mins

    Originally Posted by ProWo View Post
    Originally Posted by videoAI View Post
    Tips for Faster Encoding
    Code:
    ffmpeg -i input.mp4 -c:v libx264 -x264-params slices=4 -threads 4 output.mp4
    command was intended as example of switches usage
    Tested, no speed increase, even slightly slower (with slices:4) and even slower if you add -threads 4.
    Tested on my Intel I7 8 cores.
    off course, you are using 4 slices/threads on 8 cores
    Without these additional parameters all 8 cores are automatically used.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  18. @ProWo

    FYI ..

    FFmpeg is a powerful multimedia framework that can handle a wide range of audio and video processing tasks.
    When it comes to utilizing CPU cores, FFmpeg does not automatically detect and use all available CPU cores by default.
    Instead, it relies on specific options and configurations to take advantage of multiple cores.

    To enable multi-threading in FFmpeg, you typically need to specify the number of threads to use.
    This can be done using the -threads option.
    For example, to use 4 threads, you would add -threads 4 to your FFmpeg command.

    Originally Posted by ProWo View Post
    Without these additional parameters all 8 cores are automatically used.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  19. @ ProWo

    I am back online!

    > Just out of curiosity:
    Could you test your nVidia with the following command part, to see if there is any benefit or not?
    -hwaccel_device 1 -hwaccel cuda

    -hwaccel_device 1 -hwaccel cuda (is not working)

    Scan for errors results Intel/nVidia:
    18 (4 core CPU running at 100%)
    6 -hwaccel cuda (hw video decode running at 100%, encode 0%)
    6 -hwaccel cuda -hwaccel_output_format cuda (hw video decode running at 100%, encode 0%)
    6 -hwaccel d3d11va (hw video decode running at 100%, encode 0%)
    18 -hwaccel opencl (fallback to CPU)
    18 -init_hw_device "vulkan=vk:0" (fallback to CPU)

    Please note that my old Intel Core i5-2500K and GTX 660 Ti is from 2012, and is not comparable to today's devices!
    Quote Quote  
  20. In general, not every CPU core is capable of running two tasks simultaneously.

    Here's a breakdown of how CPU cores handle tasks:

    1. **Single-Core Processors**: These can only execute one task at a time. They switch between tasks rapidly, giving the illusion of multitasking, but at any given moment, only one task is being executed.

    2. **Multi-Core Processors**: These have multiple cores, each capable of executing one task at a time. For example, a dual-core processor has two cores, each of which can run one task. A quad-core processor has four cores, and so on. Each core can handle one task independently of the others.

    3. **Hyper-Threading**: Some modern CPUs support a technology called hyper-threading, which allows a single core to handle two threads (or tasks) simultaneously. This is not the same as having two separate cores; rather, it's a way to improve the efficiency of a single core by allowing it to switch between tasks more quickly and with less overhead. However, not all CPUs support hyper-threading, and even those that do can only handle two threads per core, not two full tasks.

    4. **Simultaneous Multithreading (SMT)**: This is a more advanced form of hyper-threading that allows a single core to handle more than two threads. Intel's Hyper-Threading Technology is an example of SMT.

    My AMD Ryzen 3 3250U uses Simultaneous Multithreading (SMT) technology, also known as Hyper-Threading in Intel's terminology, to support 4 threads on its 2 CPU cores. SMT allows each physical core to handle multiple threads concurrently, effectively doubling the number of logical processors available to the operating system and applications. This technology helps improve performance in multi-threaded workloads by increasing the efficiency of the CPU's execution units.

    In summary, while some CPUs can handle multiple threads or tasks per core through technologies like hyper-threading or SMT, not every CPU core is inherently capable of running two tasks simultaneously. The ability to do so depends on the specific architecture and features of the CPU.
    Last edited by videoAI; 9th Jul 2025 at 23:59.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  21. @ProWo

    *** Feature Request ***

    As of 2024, approximately 14% of PCs were equipped with graphics processing units (GPUs). This figure reflects a growing trend in the market, with the overall GPU shipments reaching around 76.9 million units in the fourth quarter of 2024. The market is primarily dominated by Nvidia, which held about 90% of the discrete GPU market share during that period.

    As you can see, 86% of PCs rely on CPUs to execute FFmpeg commands. A large chunk of those users may benefit if 'Clever' would add a feature in the settings to specify the number of cores they have on their system. 0 would mean auto; and a number would correspond to the actual cores number.

    This info can then be used to optimize commands sent from the GUI to FFmpeg for better performance. This feature shouldn't be too difficult to add.
    I may have some ideas around that if you are interested ..

    Are you up for a new challenge?

    As always, thank you, and keep up the good work.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  22. Originally Posted by ProWo View Post
    Originally Posted by davidt1 View Post
    Wow, you folks are way smarter than me. I am using Clever just to mux subtitles.
    Is it possible to start the app on the last page used? This would save me a click.
    How about keyboard shortcuts? Thanks.
    clever FFmpeg-GUI is much more than just a muxer.
    I have already added the multiplex button on the start page for you, let's leave it at that.
    I know it's a lot more than just a muxer, but it's a great muxer. You combine two popular software My MP4Box and MKVToolnix into one. That alone is something to be proud of.

    Now if only you make cutting and joining easy like VideoRedo.
    Quote Quote  
  23. try LosslessCut
    Originally Posted by davidt1 View Post
    Now if only you make cutting and joining easy like VideoRedo.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  24. @ ProWo

    libx264 -x264-params slices=X -threads Y

    Tested various combinations X & Y, no speed increase, even slightly slower (with slices) and even slower if you add -threads.
    Tested on two Intel 4 cores and AMD 6/12 cores.
    Without these additional parameters all cores are automatically used.

    You can reduce CPU load by using lower numbers as you physically have.
    This might be todays main reason for these parameters!
    Quote Quote  
  25. https://www.techbloat.com/ffmpeg-not-using-all-cpu.html
    https://umatechnology.org/ffmpeg-not-using-all-cpu/

    When it comes to utilizing CPU cores, FFmpeg does not automatically detect and use all available CPU cores by default.
    Instead, it relies on specific options and configurations to take advantage of multiple cores.

    To enable multi-threading in FFmpeg, you typically need to specify the number of threads to use.
    This can be done using the -threads option.

    Originally Posted by Findu View Post
    libx264 -x264-params slices=X -threads Y
    Without these additional parameters all cores are automatically used.
    Last edited by videoAI; 11th Jul 2025 at 12:00.
    As always .. there is nothing wrong with my environment
    Quote Quote  
  26. Originally Posted by videoAI View Post
    try LosslessCut
    Originally Posted by davidt1 View Post
    Now if only you make cutting and joining easy like VideoRedo.
    I have been using losslesscut for a year now. It's not quite there yet. I have high hope for it, but it's been very slow to update.
    Quote Quote  
  27. This script downloads & extracts the latest version of FFmpeg to the specified directory.

    I modified the script to:
    1- use a test folder
    2- keep the downloaded FFmpeg zip file, just in case.

    Feel free to modify and use. Enjoy.

    Code:
    @echo off
    setlocal
    
    :: This script downloads & extracts the latest version of FFmpeg to the destination directory.
    :: Written and tested by VideoAI.
    
    :: Define the URL for the latest FFmpeg 64-bit static Windows full build
    set "ffmpeg_url=https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip"
    
    :: Define the destination directory
    ::set "destination_dir=C:\Portable\PortableApps\ffmpeg"
    set "destination_dir=C:\Portable\PortableApps\test"
    
    :: Define the path for the downloaded zip file
    set "zip_file=%destination_dir%\ffmpeg-release-essentials.zip"
    
    :: Download the FFmpeg zip file if needed
    if not exist "%zip_file%" (
    echo Downloading FFmpeg...
    powershell -Command "Invoke-WebRequest -Uri '%ffmpeg_url%' -OutFile '%zip_file%'"
    )
    :: Check if the download was successful
    if not exist "%zip_file%" (
        echo Failed to download FFmpeg.
        exit /b 1
    )
    :: Extract the zip file to a temporary directory
    set "temp_extract_dir=%destination_dir%\temp_extract"
    mkdir "%temp_extract_dir%"
    echo Extracting FFmpeg...
    powershell -Command "Expand-Archive -Path '%zip_file%' -DestinationPath '%temp_extract_dir%'"
    
    :: Check if the extraction was successful
    if not exist "%temp_extract_dir%\ffmpeg-*-essentials_build" (
        echo Failed to extract FFmpeg.
        exit /b 1
    )
    
    :: Move the contents of the extracted folder to the destination directory
    set "extracted_folder=%temp_extract_dir%\ffmpeg-*-essentials_build"
    for /d %%i in ("%extracted_folder%") do (
        xcopy "%%i\*" "%destination_dir%" /E /I /Y
        rmdir /s /q "%%i"
    )
    
    :: Clean up the temporary extraction directory and the downloaded zip file
    echo Cleaning up...
    rmdir /s /q "%temp_extract_dir%"
    ::del "%zip_file%"
    
    echo FFmpeg update completed successfully.
    endlocal
    Pause
    As always .. there is nothing wrong with my environment
    Quote Quote  
  28. @ ProWo

    How about changing the color of the Multiplex (Join) button on the Main page when completed tasks become available? For example, after extracting streams or completing V/A/S encoding. This way, you can see that there's something new in Multiplex.
    Quote Quote  
  29. Originally Posted by Findu View Post
    How about changing the color of the Multiplex (Join) button on the Main page when completed tasks become available? For example, after extracting streams or completing V/A/S encoding. This way, you can see that there's something new in Multiplex.
    This is a real good idea.
    I've changed it now.
    There is a new color for the following buttons in the main screen: Multiplex, Join, Batch tasks.
    This new color indicates that the corresponding grid contains elements.
    When the grid is empty, the color remains as before.
    (I have also changed the batch tasks button color so that the whole thing is uniform).
    Quote Quote  
  30. Why is there this white border as a pre-selection at Multiplex?
    Image
    [Attachment 87818 - Click to enlarge]
    Quote Quote  



Similar Threads

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