'Faster FFMPEG conversion from WMV

I'm converting a lot of WMV files to MP4.

The command is:

ffmpeg -loglevel 0 -y -i source.wmv destination.mp4

I have roughly 100gb to convert. 24 hours later it's still not done (xeon, 64gb, super fast storage)

Am I missing something out? is there a better way to convert?



Solution 1:[1]

Here's a list of various things you can try:

Preset

Use a faster x264 encoding preset. A preset is a set of options that gives a speed vs compression efficiency tradeoff. Current presets in descending order of speed are: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo. The default preset is "medium". Example:

ffmpeg -i input.wmv -preset fast output.mp4

CPU capabilities

Check that the encoder is actually using the capabilities of your CPU. When encoding via libx264 the console output should show something like:

[libx264 @ 0x7f8451001e00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

If it shows none then encoding speed will suffer. Your x264 is likely misconfigured and you'll need to get a new one or re-compile.

ASM

Related to the above suggestion, but make sure your ffmpeg was not configured with --disable-asm, --disable-inline-asm, and/or --disable-yasm.

Also, make sure your x264 that is linked to ffmpeg is not compiled with --disable-asm.

If these configure options are used then encoding will be much slower.

AAC

You can encode AAC audio faster using the -aac_coder fast option when using the native FFmpeg AAC encoder (-c:a aac). However, this will have much less of an impact than choosing a faster preset for H.264 video encoding, and the audio quality will probably be reduced when compared to omitting -aac_coder fast.

ffmpeg

Use a recent ffmpeg. See the FFmpeg Download page for links to builds for Linux, macOS, and Windows.

Solution 2:[2]

In my case simple WMV to MP4 conversion using this command ffmpeg -i input.wmv output.mp4 increased size of file from 5.7MB to 350MB and the speed was 0.190x, which took ages to make mp4 video. Anyway, I waited more than 2 hours for it to finish and found out, that output video had 1000 frames/second. Having in mind, that it was Full HD video, 2 hours were pretty okay. My solution looks like this

ffmpeg -i input.wmv -crf 26 -vf scale=iw/3:ih/3,fps=15 output.mp4

Here I reduce video height and width in 3 times, make it only 15 fps and make a little compression

which resulted in:

  • only 5.7MB -> 15MB
  • 278x speed improvement! (from 0.19x to 52.9x)
  • some quality loss, but for me it was not so neccessary

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 llogan
Solution 2 Savvasenok