Jump to content

Conversion Software


Benjamin Hilton
 Share

Recommended Posts

Hey all,

I'm in the process of switching editing software for our company from Premiere Pro to FCPX. I really liked Premiere, it has the bases of our workflow for many years now. Our main issue was stability, just so many issues over and over again with no sign of improvement. I've cut two projects in FCPX over the last couple of weeks and really enjoyed it! I feel like my editing speed has gone up due to the flawless performance of the software and I really get this feeling like FCPX just gets out of the way of my editing...revolutionary I know. 

My main question is what conversion software do you guys use? I am used to the abundance of options available in Premiere Pro for rendering that are lacking in Final Cut.  I could drop the $50 for compressor, but just wondering if that is the best option. Anything better/cheaper for encoding/conversion etc.?

Link to comment
Share on other sites

EOSHD Pro Color 5 for Sony cameras EOSHD Z LOG for Nikon CamerasEOSHD C-LOG and Film Profiles for All Canon DSLRs
  • 2 weeks later...

In the end, all the free/Open Source conversion programs - including Handbrake and Staxrip - are just graphical user interfaces for ffmpeg, and will thus yield the same results and performance. So one can simply stick with the tool whose user interface one prefers - or use ffmpeg directly on the command line. (Which provides more advanced functions such as ProRes and DNxHR encoding...)

Link to comment
Share on other sites

I always use ffmpeg from the command line. Like @rawshooter said, all the free converters use ffmpeg under the hood but may expose different options. If you put some time into learning it, running ffmpeg commands yourself offers the most flexibility, for free. You can really dial in the quality/encoding time/size compromises to just where you want it, and if you can take advantage of hardware acceleration then it's lightning fast.

Link to comment
Share on other sites

18 hours ago, rawshooter said:

In the end, all the free/Open Source conversion programs - including Handbrake and Staxrip - are just graphical user interfaces for ffmpeg, and will thus yield the same results and performance. So one can simply stick with the tool whose user interface one prefers - or use ffmpeg directly on the command line. (Which provides more advanced functions such as ProRes and DNxHR encoding...)

Thanks for the insight.

Out of curiosity, ffmpeg is multiplatform, right?

And if so, is there any benefit to running it on a linux box over running it on a windows box?

I know Linux generally has less codex / libraries than windows but maybe there is something I am overlooking???

17 hours ago, KnightsFan said:

You can really dial in the quality/encoding time/size compromises to just where you want it, and if you can take advantage of hardware acceleration then it's lightning fast.

I've heard that - at least in resolve - that using hardware acceleration might degrade quality in terms of exporting to an h.264 codec. I don't know if this is true or not. Is there any consensus that for ffmpeg whether hardware acceleration degrades quality (or results in a larger finished file to get the same quality as using software rendering)?

Link to comment
Share on other sites

10 minutes ago, Mark Romero 2 said:

I know Linux generally has less codex / libraries than windows but maybe there is something I am overlooking???

Ffmpeg is the library, so that shouldnt be an issue. I dont know if performance is different.

30 minutes ago, Mark Romero 2 said:

I've heard that - at least in resolve - that using hardware acceleration might degrade quality in terms of exporting to an h.264 codec. I don't know if this is true or not. Is there any consensus that for ffmpeg whether hardware acceleration degrades quality (or results in a larger finished file to get the same quality as using software rendering)?

Resolve's encoders suck in general. I recently discovered that their AAC encoder produces all kinds of artifacts, so i am using trusty ffmpeg to encode audio from PCM and losslessly mux with the video.

I have not tested hardware encoding quality in ffmpeg, i use it for creating proxies so i want it to be fast rather than high quality. It would be interesting to test.

Link to comment
Share on other sites

39 minutes ago, Mark Romero 2 said:

Out of curiosity, ffmpeg is multiplatform, right?

And if so, is there any benefit to running it on a linux box over running it on a windows box?

I know Linux generally has less codex / libraries than windows but maybe there is something I am overlooking???

I've heard that - at least in resolve - that using hardware acceleration might degrade quality in terms of exporting to an h.264 codec. I don't know if this is true or not. Is there any consensus that for ffmpeg whether hardware acceleration degrades quality (or results in a larger finished file to get the same quality as using software rendering)?

ffmpeg is multiplatform and only uses its own, included codec library (here is a complete list of all encoders). Performance is practically the same on Windows, Linux and MacOS, although the program is chiefly developed under Linux.

Hardware acceleration indeed degrades the export quality to h.264 or h.265 if you use the (very fast) on-chip encoders of Nvidia and AMD GPUs. The CPU-only x264 and x265 codecs of ffmpeg yield much better image quality, especially if you use the "slow" or "very slow" encoding preset and the "film" tuning parameter. (They are also available in the Handbrake GUI.) You pay with much longer encoding time. Optionally/alternatively, ffmpeg can also use the Nvidia on-chip encoder (nvenc, which you can select in Handbrake as well).

For me, as a commandline person, it's easier to just type "ffmpeg -i myvideo.mxf -vcodec libx264 -b:v 18000k -tune film -preset veryslow -b:a 192k myvideo.mp4" than clicking through Handbrake's menus, but your mileage may vary... 

Link to comment
Share on other sites

47 minutes ago, KnightsFan said:

Resolve's encoders suck in general. I recently discovered that their AAC encoder produces all kinds of artifacts, so i am using trusty ffmpeg to encode audio from PCM and losslessly mux with the video.

I have not tested hardware encoding quality in ffmpeg, i use it for creating proxies so i want it to be fast rather than high quality. It would be interesting to test.

Thanks so much for the response and the information.

47 minutes ago, rawshooter said:

ffmpeg is multiplatform and only uses its own, included codec library (here is a complete list of all encoders). Performance is practically the same on Windows, Linux and MacOS, although the program is chiefly developed under Linux.

Hardware acceleration indeed degrades the export quality to h.264 or h.265 if you use the (very fast) on-chip encoders of Nvidia and AMD GPUs. The CPU-only x264 and x265 codecs of ffmpeg yield much better image quality, especially if you use the "slow" or "very slow" encoding preset and the "film" tuning parameter. (They are also available in the Handbrake GUI.) You pay with much longer encoding time. Optionally/alternatively, ffmpeg can also use the Nvidia on-chip encoder (nvenc, which you can select in Handbrake as well).

For me, as a commandline person, it's easier to just type "ffmpeg -i myvideo.mxf -vcodec libx264 -b:v 18000k -tune film -preset veryslow -b:a 192k myvideo.mp4" than clicking through Handbrake's menus, but your mileage may vary... 

Thanks so much for the elaboration.

I have one client that NEEDS the final video file to be under 500MB (as in, 499MB is fine, but 500MB is too big). It can be either h.264 or h.265 codec, and off the top of my head, the wrapper doesn't matter so much, so I think either .mov or .mp4 is fine.

The problem is, I can't "predict" how big the final video file is going to be before rendering it. So using the slow encoding presets means I have to spend an hour or so to render a three minute video file, only to find out it is over 500MB and too big for the client.

So is there a way either with ffmpeg or with one of the GUI for ffmpeg to "preview" what the final size is before rendering? Or to even limit the file by size?

Ideally, I would love for the software to just figure out what the best quality settings should be automatically while still keeping it at under 500MB final file size.

Don't know if that exists in the command line ffmpeg options or in a particular GUI.

Link to comment
Share on other sites

23 minutes ago, Mark Romero 2 said:

have one client that NEEDS the final video file to be under 500MB (as in, 499MB is fine, but 500MB is too big). It can be either h.264 or h.265 codec, and off the top of my head, the wrapper doesn't matter so much, so I think either .mov or .mp4 is fine.

The problem is, I can't "predict" how big the final video file is going to be before rendering it. So using the slow encoding presets means I have to spend an hour or so to render a three minute video file, only to find out it is over 500MB and too big for the client.

So is there a way either with ffmpeg or with one of the GUI for ffmpeg to "preview" what the final size is before rendering? Or to even limit the file by size?

Look into 2-pass encoding. You can do it with ffmpeg, there is a description here https://trac.ffmpeg.org/wiki/Encode/H.264 (also available with H.265).

Alternatively, you can specify min and max bitrates, but two pass is generally the way to go for targeting a specific file size. I'm sure there are GUIs out there that do it, just look for something with two pass encoding options.

Link to comment
Share on other sites

On 1/21/2020 at 4:25 PM, KnightsFan said:

I always use ffmpeg from the command line. Like @rawshooter said, all the free converters use ffmpeg under the hood but may expose different options. If you put some time into learning it, running ffmpeg commands yourself offers the most flexibility, for free. You can really dial in the quality/encoding time/size compromises to just where you want it, and if you can take advantage of hardware acceleration then it's lightning fast.

This is really good to know

Link to comment
Share on other sites

On 1/22/2020 at 11:49 AM, Mark Romero 2 said:

Thanks so much for the response and the information.

Thanks so much for the elaboration.

I have one client that NEEDS the final video file to be under 500MB (as in, 499MB is fine, but 500MB is too big). It can be either h.264 or h.265 codec, and off the top of my head, the wrapper doesn't matter so much, so I think either .mov or .mp4 is fine.

The problem is, I can't "predict" how big the final video file is going to be before rendering it. So using the slow encoding presets means I have to spend an hour or so to render a three minute video file, only to find out it is over 500MB and too big for the client.

So is there a way either with ffmpeg or with one of the GUI for ffmpeg to "preview" what the final size is before rendering? Or to even limit the file by size?

Ideally, I would love for the software to just figure out what the best quality settings should be automatically while still keeping it at under 500MB final file size.

Don't know if that exists in the command line ffmpeg options or in a particular GUI.

You should be able to set a maximum bit-rate and calculate the size based on the video length. Meaning a 500MB = 4000mb = 22mb/sec for a 3 minute video

Link to comment
Share on other sites

40 minutes ago, Benjamin Hilton said:

You should be able to set a maximum bit-rate and calculate the size based on the video length. Meaning a 500MB = 4000mb = 22mb/sec for a 3 minute video

Thanks.

Does that hold true if the final codec is h.265 (as opposed to h.264)?

Also, does the "preset" being used (fast, slow, very slow) not affect the final file size?

Link to comment
Share on other sites

1 hour ago, Mark Romero 2 said:

Does that hold true if the final codec is h.265 (as opposed to h.264)?

Also, does the "preset" being used (fast, slow, very slow) not affect the final file size?

The choice of codec and the preset makes no difference for the resulting file size. 

You simply use a tool like this one:
https://www.dr-lex.be/info-stuff/videocalc.html (Video Bitrate Calculator)

...which calculates the video and audio bitrate for you, then you use Handbrake/ffmpeg, specify the same two bitrates for the encoding, and choose 2-pass (possibly with "turbo first pass" option) encoding for the highest accuracy of your video matching the desired file size.

 

Link to comment
Share on other sites

7 minutes ago, rawshooter said:

The choice of codec and the preset makes no difference for the resulting file size. 

You simply use a tool like this one:
https://www.dr-lex.be/info-stuff/videocalc.html (Video Bitrate Calculator)

...which calculates the video and audio bitrate for you, then you use Handbrake/ffmpeg, specify the same two bitrates for the encoding, and choose 2-pass (possibly with "turbo first pass" option) encoding for the highest accuracy of your video matching the desired file size.

 

Thanks!!!

Link to comment
Share on other sites

20 hours ago, rawshooter said:

The choice of codec and the preset makes no difference for the resulting file size. 

You simply use a tool like this one:
https://www.dr-lex.be/info-stuff/videocalc.html (Video Bitrate Calculator)

...which calculates the video and audio bitrate for you, then you use Handbrake/ffmpeg, specify the same two bitrates for the encoding, and choose 2-pass (possibly with "turbo first pass" option) encoding for the highest accuracy of your video matching the desired file size.

 

That's right, the bitrate will always determine your file size, no matter what codec you use. The codec just decides how efficient the bitrate you use is for the video, meaning 10mb/sec will look much better in h.265 as compared to h.264 as it is more efficient. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • EOSHD Pro Color 5 for All Sony cameras
    EOSHD C-LOG and Film Profiles for All Canon DSLRs
    EOSHD Dynamic Range Enhancer for H.264/H.265
×
×
  • Create New...