FFmpeg: Highest quality 50i to 50p conversion, comparable to Adobe Premiere

5,936

Your guess is correct, that the video quality has nothing to do with the video encoding, but the deinterlace filter. You are using yadif, but if you are unsatisfied with its quality have a look at the other deinterlacing filters kerndeint, mcdeint and w3fdif. You can find usage details and options in the ffmpeg documentation.

Share:
5,936

Related videos on Youtube

Jim Hoyle
Author by

Jim Hoyle

Updated on September 18, 2022

Comments

  • Jim Hoyle
    Jim Hoyle almost 2 years

    I have 50i footage (more specifically tagged as 25 fps but does contain movement on the secondary fields). I am able to get pretty good quality conversion to 50p from Adobe Premiere by simply exporting as Frame Rate 50, Progressive. I am also able to get pretty good quality same conversion with FFmpeg using parameters such as:

    ffmpeg.exe -y -i INPUT.MOV -b:v 12000k -vcodec libx264 \
       -filter:v yadif=1,format=yuv420p -acodec copy OUTPUT.MP4
    

    (or with -qp 0)

    The problem is, there are considerably worse compression artifacts on the FFmpeg result on objects that are moving. Even on a very high bitrate (much higher than Premiere). Why is that? It doesn't help basically at all if I add -preset veryslow.

    Are there some other parameters to try to get rid of those movement compression artifacts? Premiere produces nice, clean results while FFmpeg produces slightly JPEG looking mess (with some combing mess too).

    • Daniel B
      Daniel B about 9 years
      Are you sure the deinterlacing algorithm isn’t at fault? I suggest you take a scene where the issue is very visible and save this scene without compression. Oh and by the way: Use CRF, not bitrate.
  • Jim Hoyle
    Jim Hoyle about 9 years
    Thanks, it is indeed probably more about the deinterlace filter. Here are the results: I couldn't get kernint working with 50 fps (only 25 fps) and it was bad quality anyway. -crf 0 -filter:v yadif=1:0,mcdeint=2:1:10,format=yuv420p was insanely slow but produced almost as good as Premiere, still worse though (even with crf 0). w3fdif I couldn't get working for neither 50 fps nor deinterlacing at all. I would appreciate it a lot if someone could post some parameters confirmed working.
  • user1978011
    user1978011 about 9 years
    Can you provide a small sample of your video?
  • Jim Hoyle
    Jim Hoyle about 9 years
    Perhaps it's enough if I show an image – in these screenshots there is not a huge difference actually, but the image above is slightly worse. I wrote some text on the images so it should be self-explanatory.
  • Jim Hoyle
    Jim Hoyle over 8 years
    I was wrong about Premiere having a good deinterlace. It doesn't have any deinterlace, only doubling fields. Just with some material, if doubling fields and showing it in 50fps, it may look good, but with vector graphics it'll flicker and look absolutely horrible. Yadif seems to be pretty good, but it has e.g. two frames of buggy looking interlacing when video cuts to a vector graphic or cuts away from it. Very annoying not being able to solve that.
  • phiresky
    phiresky about 7 years
    @JimHoyle "two frames of buggy looking interlacing" that might be the auto field parity detection, see here. you can set that manually using yadif=parity=ttf