FOSDEM / video

82 stars 21 forks source link

mkv/AV1 for FOSDEM videos #223

Closed abitrolly closed 1 year ago

abitrolly commented 1 year ago

FOSDEM 2023 videos are only available in VP9 and mp4 (?). From https://fosdem.org/2023/schedule/event/nasa/

Using AV1 could give better compression over the same quality. Have there been talks about that?

From https://github.com/FOSDEM/video/blob/master/Architecture.md I don't see that original MPEG-TS streams are preserved. Are they? Would be nice to get such stream for some testing.

yoe commented 1 year ago

Hi,

Our video encoding workflow uses SReview, which in turn uses Media::Convert to generate ffmpeg command lines to do the actual transcoding.

I have been looking at options to generate AV1 video for a while now, but everything I tried still requires several orders of magnitude more CPU resources than a VP9 encode using the Google-recommended VP9 quality settings. This makes it not feasible to do for the amount of video we generate.

If you are knowledgeable on AV1 and ffmpeg, then I would definitely welcome either an example ffmpeg command line, or (better) a patch for Media::Convert to transcode video in a way that does not take forever.

Otherwise I'm sure I'll eventually get it working, it might just take a while.

abitrolly commented 1 year ago

I can do Python, Bash and Go, but Perl is not my specialty. Why FOSDEM videos need a framework for generating ffmpeg command lines? As I understand the conversion process, the input format is always the same, and the output is the same, so I would expect ffmpeg lines to be hardcoded in a bash script that just accepts input and output filenames.

For the CPU performance needed, it is hard to say anything certain without metrics. There are a few encoders out there, which worth testing.

There are also claims that some CPUs are better than others - https://www.reddit.com/r/AV1/comments/ycjhs0/any_good_13900k_vs_7950x_encoding_benchmarks_for/ and that there are even some GPUs.

I would be actually interested to have a FOSDEM some footage contributed as a Phoronix test suite. Is it possible to share some files? Most benchmarks are using short fragments, or are using movies like https://media.xiph.org/ and that doesn't cover compressing mostly static slides over an hour or so.

How much data there in uncompressed FOSDEM 2023 footage? I'd like to evaluate if the encoding overhead is still a reasonable endeavor to save bandwidth.

markvdb commented 1 year ago

Video.fosdem.org is basicly mirrors, so bandwidth is free to us really. Encoding time and the admin overhead of an additional format are not. Storage savings might potentially be interesting.

Regarding encoding time, a ballpark estimate for our video (typically 720p, 25fps, ...) might be interesting.

The very most important question is something else though: How do you suggest keeping the admin overhead to a minimum?

Feel free to use all of https://video.fosdem.org . That is the canonical source of all historical FOSDEM videos. All CC BY-SA licensed.

yoe commented 1 year ago

I can do Python, Bash and Go, but Perl is not my specialty.

Well, that's why I suggested an example as an alternative 😉

Why FOSDEM videos need a framework for generating ffmpeg command lines? As I understand the conversion process, the input format is always the same, and the output is the same, so I would expect ffmpeg lines to be hardcoded in a bash script that just accepts input and output filenames.

I used to do that, but it essentially means that whenever we want to change a detail in the workflow, I need to change all the scripts, with all the common bugs that would entail. No thanks.

Additionally, I use SReview for more than just FOSDEM, and it is written in such a way that it should be easy to reuse for other use cases.

Hence.

For the CPU performance needed, it is hard to say anything certain without metrics. There are a few encoders out there, which worth testing.

* [aomenc](https://aomedia.googlesource.com/aom/)

* [SvtAv1EncApp](https://gitlab.com/AOMediaCodec/SVT-AV1)

* [rav1e](https://github.com/xiph/rav1e)

I was aware of the first two, but have not yet been able to find the time to take sit down and find out how I should tune the encoders in such a way that it produces acceptable video quality in acceptable encoding time. I will eventually get to it, but getting help from someone more familiar with things is certainly... Helpful.

I was not aware of the last one; will look at it in some more detail once most encodes for this edition are finished (which is taking up a lot of my spare time)

There are also claims that some CPUs are better than others - https://www.reddit.com/r/AV1/comments/ycjhs0/any_good_13900k_vs_7950x_encoding_benchmarks_for/ and that there are even some GPUs.

Tuning things for specific hardware is certainly an option, but I would also like generic defaults that produce reasonable results.

I would be actually interested to have a FOSDEM some footage contributed as a Phoronix test suite. Is it possible to share some files? Most benchmarks are using short fragments, or are using movies like https://media.xiph.org/ and that doesn't cover compressing mostly static slides over an hour or so.

All FOSDEM videos are available, as Mark already noted.

FOSDEM records in MP4 with some custom encoder settings to influence key frame frequency and some other things that are useful for live streaming.

The MP4 videos on video.fosdem.org are not transcoded; we just copy the MP4 video as is (obviously we do add opening and closing credits though). There's currently a bug in the concatenation in that we don't enforce key frames, but I have a plan on how to fix that, which I will hopefully implement soon.

How much data there in uncompressed FOSDEM 2023 footage? I'd like to evaluate if the encoding overhead is still a reasonable endeavor to save bandwidth.

Well, you can just look at the MP4 version of each talk 😉

markvdb commented 1 year ago

Please centralise av1 issues at #134 .