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?
+ Reply to Thread
Results 2,161 to 2,190 of 2219
-
-
-
@ 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. -
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 -
@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.
As always .. there is nothing wrong with my environment -
@ 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 -
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?
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]
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. -
@ 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 -
-
Yes I do.
Edit: just tried it again ..
[Attachment 87753 - Click to enlarge]
Last edited by videoAI; 8th Jul 2025 at 10:28.
As always .. there is nothing wrong with my environment -
@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.
Last edited by videoAI; 8th Jul 2025 at 11:46.
As always .. there is nothing wrong with my environment -
As always .. there is nothing wrong with my environment
-
Tips for Faster Encoding
Code:ffmpeg -i input.mp4 -c:v libx264 -x264-params slices=4 -threads 4 output.mp4
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 -
-
try this optimized code:
Code:ffmpeg -i input.mp4 -c:v libx264 -preset fast -tune film -x264-params slices=8 -threads 8 output.mp4
-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.
As always .. there is nothing wrong with my environment -
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"
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"
End at 14:39:22.84
Duration ~ 2:83 mins
As always .. there is nothing wrong with my environment -
@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.
As always .. there is nothing wrong with my environment -
@ 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! -
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 -
@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 -
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. -
try LosslessCut
As always .. there is nothing wrong with my environment -
@ 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! -
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.
Last edited by videoAI; 11th Jul 2025 at 12:00.
As always .. there is nothing wrong with my environment -
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.
-
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 -
@ 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. -
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). -
Why is there this white border as a pre-selection at Multiplex?
[Attachment 87818 - Click to enlarge]
Similar Threads
-
GUI for ffmpeg x265 encoder
By david55 in forum Video ConversionReplies: 15Last Post: 11th May 2025, 09:15 -
New small GUI for FFmpeg
By ProWo in forum Video ConversionReplies: 29Last Post: 24th Feb 2024, 02:06 -
Best GUI for ffmpeg encoding
By usta in forum Video ConversionReplies: 25Last Post: 17th Jan 2019, 11:23 -
GUI for FFMpeg amf?
By Micky in forum Video ConversionReplies: 0Last Post: 14th Jan 2018, 07:45 -
dmMediaEncoder v1.8.0 - crossplatform FFMPEG GUI
By mdalacu in forum Video ConversionReplies: 38Last Post: 29th Sep 2015, 00:19