lisamelton / other_video_transcoding

Other tools to transcode videos.
MIT License
555 stars 26 forks source link

Question: Transcoding with transcode_video provides smaller files than transcoding with other_transcode. #79

Closed TronVonDoom closed 3 years ago

TronVonDoom commented 3 years ago

As the title says. Is this because it is being transcoded through hardware instead of software? Or, is there a way to achieve similar file size results with other_transcode?

Example: Episode 1 of I Dream of Jeannie transcode_video - 301MB other_transcode - 403MB

BTW, I've been searching for a really long time on how to properly and efficiently convert my library through Handbrake and optimized Quality to File Size ratio. Your tool is by far the best I've ever encountered. Thank you very much. I would very much like to contribute something to you for your work and time.

lisamelton commented 3 years ago

@TronVonDoom Thanks for using my tools! And thanks for the offer of contribution but it's not needed. It's enough for me to have nice people like you asking really good questions like this.

Unfortunately, I can't completely answer your question about the difference in size because I don't know which options you're passing to either tool, nor the resolution of your inputs.

That said, the default target bitrates for transcode-video and other-transcode are different for similarly-size inputs. Those targets are bigger for other-transcode because it tries to use a hardware encoder by default while the default for transcode-video is a software encoder. And hardware encoders are slightly less efficient than software encoders. That's the price you pay for all that hardware-based speed, i.e. potentially lower quality at the same target bitrate.

But it's only a potential problem. And it's easily changeable by adding--target to your command line. Here's the --help output for that option:

    --target [2160p=|1080p=|720p=|480p=]BITRATE
                    set video bitrate target (default: based on input)
                      or target for specific input resolution

I just did a whole series of test transcodes earlier today with the Nvidia AVC/H.264 encoder using this on my command line for some Blu-ray Disc rips:

--target 1080p=6000

This lowered the default target by 25%, from 8000 Kbps to 6000 Kbps. And the output still looked great!

Feel free to try something like that yourself.

Does this help?

TronVonDoom commented 3 years ago

I'm transcoding a 480p video, some being interlaced. But, I do understand what you are saying. I've tried those options with different bitrates, but nothing was satisfying. I think the file size\quality is worth the extra time through transcode_video though. I can transcode a 25min episode in about 20min through transcode_video, about 30sec through other_transcode.

So yes, this helps tremendously. :)

I've been wanting to pick your brain with another question. What are your typical options when using transcode_video and other_transcode?

lisamelton commented 3 years ago

@TronVonDoom I use other-transcode for my personal library now, instead of transcode-video, because it has better access to hardware encoders.

I have very few DVD rips in my library now since I've replaced all but four of them with Blu-rays.

Because my target device is an Amazon Fire TV 4K stick running a Plex client, I never bother cropping or burning in subtitles. It just wastes time and Plex on the Fire TV stick can overlay bitmap-based subtitles without problems.

I use 10-bit HEVC format for video output and DD+ (Enhanced AC-3) for audio output because 1) they're higher quality and 2) the Fire TV stick doesn't have to transcode them again.

I prefer to use the Nvidia HEVC encoder because it's 1) faster than the QSV encoder and 2) higher quality.

But really, I use ALL the encoders to do various performance and quality tests. In fact, that's what I was doing again today. :)

I generally use the default settings but I also experiment a lot. Nvidia has more "knobs" to turn compared to the other hardware encoder vendors so I spend a lot of time with their encoders.

Lemme know if you have other questions or need more detail.

BTW, I typically re-transcode my entire library at least once a month. :)

TronVonDoom commented 3 years ago

That's kind of what I am doing. I am re-transcoding my entire library with your tool. Do you keep the master copies of each disc as a file? Or, do you rip each disc again. then transcode?

I've been trying to find an easier method since I'm manually inserting each disk, and ripping with MakeMKV. I have a large Blu-ray library as well, but still have some old DVD's like some old TV Shows that I'm working with.

How long does it take you to re-encode your entire library?

lisamelton commented 3 years ago

@TronVonDoom I keep all my original rips on two large NAS devices. Additionally, I keep remuxed versions of those rips on two 10 TB external hard drives. The remuxed versions only contain the essential tracks so they're slightly smaller.

So I usually transcode using those external hard drives as my source because that makes for much faster I/O via USB 3 than using the NAS devices over Ethernet.

But I never make master copies of an entire disc. It's just not worth it to me. I only keep rips of the titles, usually just the main title, on those discs that I care about.

My library is only about 1,000 titles. So it can take awhile to re-transcode. Although, TBH, I don't always re-transcode all of them. But at least half at a time.

Back in the old days of using x264 on a slow machine, that could be take over a month or two. :)

With hardware transcoders, I can usually get done in a week.

TronVonDoom commented 3 years ago

I'm sorry for all of the questions, but I'm trying to figure out how I can better my setup.

Currently I have two 8TB hard drives. One for the media, and one as an exact copy in case one should fail. I have about 400-500 blu-rays, about 200 DVD's and 100 TV Show DVD's, and would love to have an original copy of each main feature.

Would you mind sharing your setup? I have the means to purchase more storage, I just want to make sure I purchase something worth my while. I know most of what I am asking is a preference for the user, but some advice could set me on a great path.

Edit: I missed the part where you said you used two 10 TB hard drives. What are the sizes of you NAS? So you keep original on your NAS, remuxed on your two 10TB, and you have additional ones for your transcodes?

lisamelton commented 3 years ago

@TronVonDoom I have a Synology NAS and a QNAP NAS. The each hold about 24 TBs because they're configured in RAID format.

The external drives are just 10 TB WD Elements drives. I leave them in NTFS format. I have two which contain remuxes and two others which contain multiple full transcodes of my entire library.

My PC also has two internal 10 TB IronWolf drives. One of which contains test transcodes and another which contains my full transcoded library.

I also have several other external drives for unrelated data.