lisamelton / video_transcoding

Tools to transcode, inspect and convert videos.
MIT License
2.39k stars 160 forks source link

Request for info: Encoding samples. #256

Open khaosx opened 5 years ago

khaosx commented 5 years ago

All-

If you wouldn't mind, please reply with your top two or three go-to videos / chapters that you use to test encoding strategies. I'd like to have a good sample set established when and if the wiki happens. If we build a community set then we can all speak a common language when testing new features. Let's see what we have in common, encoding geeks :)

My personal favorites:

  1. Chapter 1 - Guardians of the Galaxy vol 1 - SIGNIFICANT potential for color and grayscale banding when the ship illuminates the field.

  2. Any chapter from Clerks. It's film, it's black and white, it's super grainy by design.

  3. Chapter 1 - Star Trek III - It's my goto for testing forced subs

lisamelton commented 5 years ago

Here's another example of a standalone Wiki on GitHub, the DevopsWiki:

https://github.com/Leo-G/DevopsWiki

This one is a kind of hybrid but it still seems to work well.

vr8hub commented 5 years ago

@JMoVS @donmelton

We need a code of conduct. Everyone needs a code of conduct.

I think #3 violates #1. :) The Wiki is already integrated with GitHub. It's easy to use. Although it would be nice if it wasn't separate (maybe?), in the end it probably should be separate because the goals are so different. And because Don wants (rightly so, IMO) a different set of people that are approved for the Wiki than for the code.

(Hah, Don's replies weren't on my screen when I replied, or I would have left it with him.)

JMoVS commented 5 years ago

@donmelton To me it's still weird that what I'd consider basic human decency is something that one needs to write down in a code of conduct, but laws are also sometimes just stating human decency so maybe I have to give it more thought 🤔

Although it might seem more complicated with the documentation tools, they allow PR-based workflow. I personally don't know how fleshed out the wiki system is on Github and how well it works and/or if the PR system is better suited for achieving what we want to achieve.

vr8hub commented 5 years ago

"basic human decency" <> "internet"

lisamelton commented 5 years ago

@JMoVS Oh, I certainly like the idea of PR-based workflow. Although, in a way, that makes more work for me since I would have review all of them. :)

@vr8hub You, sir, are hysterical. Don't ever change. :)

vr8hub commented 5 years ago

@donmelton I think I might have you talk to my wife after all.

klogg416 commented 5 years ago

@JMoVS I’ll have to check the brochure, but I am 99% sure Basic Human Decency was a feature and not part of the standard deliverable...

Tough times.

lisamelton commented 5 years ago

@JMoVS Stupid question: If I edit the text of the git tag after I do the minimal command line commit of that tag, do folks subscribing via RSS get notified of that change? Because it seems close to impossible to add that much text (especially in Markdown format) at the command line.

JMoVS commented 5 years ago

Not a stupid question at all. You could try using an annotated tag https://git-scm.com/book/en/v2/Git-Basics-Tagging which would open an editor of your liking where you can check and test then whether these show up.

But beware (I will check in 8 hours in the morning): I think you have multiple RSS feeds - the releases feed and also a commit feed. The releases are marked on the github layer, not the git layer, on a specific tag. That very moment when you tag a pre-release or release is I think when you can add all the changelog and it will still correctly show up in the releases RSS feed then. Whether you can save work/prefer to enter it in an annotated tag on the command line or marking a tag as release and entering it there is your choice ;-)

lisamelton commented 5 years ago

@JMoVS Thanks! But... I'm not sure I understand. I'm slow that way:)

Are you saying that if I edit that tag on the website after I've pushed it via the command line, then nobody will see that change in their RSS feeds?

The reason why this is such an important issue for me is that I can't create an annotated tag from the command line invoking another editor. I've tried it. It never works right and it just screws up the formatting. I hate it.

The only way I'm going change my current process is if I can edit the tag on the website after it's pushed. I mean, I can edit that tag almost immediately. Well, within a minute or two.

lisamelton commented 5 years ago

@JMoVS Thinking about it more, it's probably still useful to have the information on the tag page even if it won't go into the feeds. They tell me RSS is dead. It's not, of course. :)

Next, I'll have to decide whether to migrate the old History information to the tags as well. It probably won't be hard, just tedious.

I'm curious though, if I edit an existing tag, will it change the date?

JMoVS commented 5 years ago

@donmelton Ok so it works the following: I am not (!) subscribed to the tag feed but I am subscribed to the releases feed. This way, when you mark a tag as a a release and add some info to this, only after you hit finish on that operation in the github UI ~will I see it appearing in my feed because only then has the tag become a release.~

JMoVS commented 5 years ago

@donmelton If you go to the tags view and switch to https://github.com/donmelton/video_transcoding/tags - there are 3 dots next to the tags you can use to draft a new release based on an existing tag (this will correctly update the RSS feed as well) or you can create a new release on the GUI and create a fresh tag for it.

The RSS feed will be updated so that any decent reader (feedly, feedbin etc) will show the correctly done thing at the end of the day.

Only in the 5 minutes of a tag being pushed and you having filled out the release fields will I see it without it - but then still see the update later.

JMoVS commented 5 years ago

The only way I'm going change my current process is if I can edit the tag on the website after it's pushed. I mean, I can edit that tag almost immediately. Well, within a minute or two.

The RSS feed updates correctly, modern feedreaders will correctly show it ;-) No worries

JMoVS commented 5 years ago

The reason why this is such an important issue for me is that I can't create an annotated tag from the command line invoking another editor. I've tried it. It never works right and it just screws up the formatting. I hate it.

probably not necessary to discuss further as you can do that in the GUI, but the editor is specified in your git environment variables - don't know if you use nano, emacs, vim, vi etc

I'm curious though, if I edit an existing tag, will it change the date?

No, it will use the existing RSS feed entry and will update that one afaik

lisamelton commented 5 years ago

@JMoVS Wow! This is great info, sir. Thanks!

And sorry for taking so long to respond but today is my wedding anniversary so I'm a little bit distracted. :)

...or you can create a new release on the GUI and create a fresh tag for it.

What a stupid I am! It didn't occur to me that I could create a tag from the UI. Duh! :)

Only in the 5 minutes of a tag being pushed and you having filled out the release fields will I see it without it - but then still see the update later.

Whew! I can probably do it in less than 5 minutes.

The RSS feed updates correctly, modern feedreaders will correctly show it ;-) No worries

I'm gonna start subscribing to my own feed (and yours) with my reader of choice, NewsBlur, just to make sure it does as well.

probably not necessary to discuss further as you can do that in the GUI, but the editor is specified in your git environment variables - don't know if you use nano, emacs, vim, vi etc

Again, whew! :) I'm using BBEdit as my editor (via bbedit -w as the command) and normally this works great. But I think git is somehow confused by something in the Markdown I'm submitting and screwing it up.

I'll try again with another practice project. It's probably just operator error. For a command line weenie, I can be a real dunderheaded klutz at times. :)

No, it will use the existing RSS feed entry and will update that one afaik

Sweet!

Thanks again and I'll let you know if I have any other stupid questions. :)

klogg416 commented 5 years ago

@donmelton Nothing to add, just wanted to acknowledge and with you both a very happy anniversary!

JMoVS commented 5 years ago

@donmelton No worries, it was more me beinf worried you'd keep up your usually insane pace and it'd be left in the dust haha.

No seriously Don, enjoy your anniversary. Anniversary is literally only once a year, Github is every day. ;-)

Enjoy!

lisamelton commented 5 years ago

@klogg416 @JMoVS Thank you, sirs! :)

lisamelton commented 5 years ago

@JMoVS Today I cloned several projects from GitHub with really nice "Releases/Tags" pages to examine how they were storing that stuff in their repositories so I could do the same thing.

This required spending a LOT of time familiarizing myself with tagging and other git commands I don't normally use. :)

And I found out that none of those projects were using tag messages or even annotations for that stuff. That nifty Markdown content and other information wasn't even stored in their repositories, as near as I could tell.

If I had to guess, every project with those nice "Releases/Tags" pages is either using the GitHub Web UI to add or create that content or some other mysterious tool that I don't know about. :)

Which means the real mystery is where that content is stored. Because, like I said, it sure as hell isn't in their repositories anywhere.

So, I'm going to put this whole super whizzy formatted release notes thing on hold (at least for the upcoming release) until I understand how all this works.

BTW, the online guides at GitHub not really helpful explaining this shit. But, I of all people know that, writing good documentation is hard. :)

JMoVS commented 5 years ago

@donmelton My proposal would be to create a "changelog.md" file and copy/paste from there into the github UI.

Even though the Github UI saves this as metadata to the project apparently (so it doesn't end up in the code - one can argue for and against that), I personally don't see why that would mean it would have to be shelved. Copy-pasting into the web GUI out of a changelog.md document should be alright at least to me

JMoVS commented 5 years ago

@donmelton Why not just craft a release from the new 0.24 tag and test it? Because the current status (going to releases or following the rss feed) just shows:

grafik
lisamelton commented 5 years ago

@JMoVS I've spent this morning reading a LOT more GitHub documentation. I now understand the difference between tags and releases, at least how they're defined, created and edited as it pertains to GitHub, and why I was confused.

Like I said, I'm slow. :) But, really, someone at GitHub should be spanked because this could easily be a LOT more obvious. Jebus! And there are still things that I don't understand about their mechanism.

In the GitHub universe, tags exist only in your git repository and are created at the command line. Which is what I was doing. But releases exist only on GitHub.com and are created via the Web-based UI. And editing a tag via the Web-based UI doesn't allow you to create those spiffy release notes. You have to create a release for that.

What I don't yet understand is whether the creation dates and times for a release are tied to the tag or whether it's just a function of when you create the release within the Web-based UI. Because if it's the latter case then that's frankly pretty fucking stupid and annoying. Since, duh, you could have tag dates and release dates that don't match, thereby confusing yourself and everyone else.

So I'm not going to create a release today with release notes and risk that the dates don't match. Because that will just piss me off. :)

Instead, I'll wait until the next release (probably in a week or two the rate we're going) and create the release immediately afterwards so if the timestamps don't match, at least they're close enough to lower my blood pressure.

Here's the thing you need to know about me. I don't like magical hard-to-understand shit. That's why I became an engineer and didn't continue pursuing theology like I originally started out in university. :)

khaosx commented 5 years ago

Adding to list: Game of Thrones - S03E01 - Valar Dohaeris The unholy trinity of encoding issues. HBO Logo, cold open on a low lit scene, cold open is a brother of the Knight's Watch in black running in snow, and closeups of said brother in actual snowfall.

lisamelton commented 5 years ago

@khaosx Yeah, "Valar Dohaeris" is a great test case, although some of the problems it has are due to poor mastering, i.e. some of the color banding you see is actually in the original.

Two other "Game of Thrones" episodes I like to test with are:

The "Blackwater" episode is prone to color banding in the dark ship scene after the title sequence, especially when Davos stands on the front deck and looks out to the sea. This is a problem no matter which ratecontrol system you use.

The "Blood of My Blood" episode has color banding in the original during Meara and Bran's flight through woods. Really horrible mastering in this one. So the test is, does the ratecontrol system make it worse?

khaosx commented 5 years ago

Adding to list:

Apocalypse Now (1979)

This is my current favorite for audio sampling. The opening sequence is The Doors "This Is The End", overlaying a chopper that pans across the front channels several times, then into dialogue, then back into The Doors going to a crescendo with Sheen hitting the mirror and fading back into dialogue.

It's super easy for any of those parts to get muddy over the course of nine minutes, so it makes for good testing. It doesn't hurt that I've seen this movie enough times that I know how it should sound pretty much by heart.

lisamelton commented 5 years ago

@khaosx Oooh, good idea. Create an audio category for the list! And that's a great test case.

lisamelton commented 5 years ago

@khaosx And now I'm gonna spend at least part of my day listening for test cases in my own collection. Dangit! :)

rhapsodians commented 5 years ago

Some updated examples specifically to test audio:

Example from the terminal. The purpose here is to concentrate on audio and not worry about video quality (hence the --veryquick flag). Picking specific chapters also significantly cuts down on transcoding time.

transcode-video --avbr --veryquick --ac3-encoder eac3 --ac3-bitrate 384 --audio-width all=double --chapters 3 --output ./test/SPR-EAC3-384.surround-stereo.mkv 'Saving Private Ryan (1998).mkv'

The main variables to tweak are the --ac3-encoder and --ac3-bitrate. The different options for each are in the help (GitHub and via --help)

lisamelton commented 5 years ago

@rhapsodians BTW, thanks for putting those examples here! For some strange reason, GitHub never notified me. Go figure.

lisamelton commented 5 years ago

@rhapsodians OK, looks like GitHub did notify me. I just can't seem to use this newfangled "email" thing. :)

nakda commented 5 years ago

A little contribution:

Game of Thrones (S07E01) Right after the opening credit (~5:30) there is this huge snow storm for about 2minutes that leads to color banding

genimac commented 5 years ago

Hello, first thing first, thanks for this awesome tool, I have build a Plex media server for me an friends (10) and with this I'm finally able to deliver quality to the ones with bad internet. I'm just reading and testing and when reached here I thought, what about cartoons - anime? I have the full set of Reboot DVDs for example, and the first two minutes credits never rendered well. No wonder as I only used defaults and my experience with this is null. Is this more or less complex to render than the Guardians of the Galaxy 2 you have on the list? I will make some noob questions on new issues later.

Sugestion 2m credits of any Reboot season 1 episode.

lisamelton commented 5 years ago

@genimac Thanks!