1
1
submitted 5 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

Introducing SVT-AV1-PSY v2.1.0-A

Features

  • New parameter --max-32-tx-size, which restricts block transform sizes to a maximum of 32x32 pixels. This can be useful in very specific scenarios for improving overall efficiency
  • Added support for HDR10+ JSON files via a new --hdr10plus-json parameter (thanks @quietvoid!). In order to build a binary with support for HDR10+, see our PSY Development page.
  • New parameter --adaptive-film-grain, which helps remedy perceptually harmful grain patterns caused by extracting grain from blocks that are too large for a given video resolution. This parameter is enabled by default

Quality & Performance

  • Disabled SSIM-cost transform decisions while keeping SSIM-cost mode decisions, generally improving Tune 3's efficiency & consistency
  • Additional NEON optimizations for ARM platforms, providing a speed increase

Documentation

  • All of the features present in this release have been documented, so associated documentation has been updated accordingly
  • Build documentation updated to reflect the HDR10+ build option

Bug Fixes

  • Disabled quantization matrices for presets 5 and higher due to a visual consistency bug (#56)

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.1.0-A

2
1
submitted 6 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

SVT-AV1 2.1.0 just released, how does it compare to SVT-AV1 2.0.0? Well-known encoder Trix attempts to answer this question with metrics, graphs, and detailed analysis.

3
1
submitted 6 months ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

[2.1.0] - 2024-05-17

API updates

  • One config parameter added within the padding size. Config param structure size remains unchanged
  • Presets 6 and 12 are now pointing to presets 7 and 13 respectively due to the lack of spacing between the presets
  • Further preset shuffling is being discussed in #2152

Encoder

  • Added variance boost support to improve visual quality for the tune vq mode
  • Improve the tradeoffs for the random access mode across presets:
  • Speedup of 12-40% presets M0, M3, M5 and M6 while maintaining similar quality levels
  • Improved the compression efficiency of presets M11-M13 by 1-2% (!2213)
  • Added ARM optimizations for functions with c_only equivalent

Cleanup Build and bug fixes and documentation

  • Use nasm as a default assembler and yasm as a fallback
  • Fix performance regression for systems with multiple processor groups
  • Enable building SvtAv1ApiTests and SvtAv1E2ETests for arm
  • Added variance boost documentation
  • Added a mailmap file to map duplicate git generated emails to the appropriate author
4
1
submitted 6 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

Hi there! We're back with a new micro-release format to announce some exciting changes in SVT-AV1-PSY v2.0.0-A! ๐ŸŽ‰

PSY Updates

Features

  • The CRF range, previously capped at 63, has been extended to a maximum value of 70. It can also be incremented in quarter increments of 0.25
  • New option: --enable-dlf 2 for a slower, more accurate deblocking loop filter
  • New option: --qp-scale-compress-strength (0 to 3) which sets a strength for the QP scale algorithm to compress values across all temporal layers. Higher values result in more consistent video quality
  • New option: --frame-luma-bias (0 to 100) enables experimental frame-level luma bias to improve quality in dark scenes by adjusting frame-level QP based on average luminance across each frame

Quality & Performance

  • A temporal layer qindex offset has been added to Tune 3 for more consistent quality across frames when encoding
  • Minor speed bump to Preset 8
  • Dynamic delta_q_res switching implemented to help reduce signaling overhead, which should improve quality especially at CRF โ‰ฅ40
  • Other general improvements to Tune 3

Documentation

  • PNG images have been replaced with smaller lossless WebP images, resulting in faster loading & repository cloning times.
  • More consistent & thorough PSY Development page, including build instructions

Bug Fixes

  • Help menu formatting adjusted for less frequent underlining
  • --progress 2 no longer reports the same information as --progress 3

Other

  • Introducing PSY Micro-releases! Each micro-release will be marked with a letter, bringing a bundle of new features & improvements. The release letter will reset back to the initial A each time our mainline version is updated. More info can be found in this project's README & the PSY Development page

Thanks for using SVT-AV1-PSY! โ™ฅ๏ธ

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.0.0-A

5
1
submitted 8 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

From the GitHub releases:

Hello, everyone! We've been hard at work enhancing SVT-AV1 with our additions to the encoder improving visual fidelity. Little by little, we are working on trying to bring many of them to mainline! For the time being, I want to note that major SVT-AV1-PSY releases & mainline releases are not the same, and the codebases differ due to our changes; the version numbers may be identical, but the versions themselves are not, which is disclosed within the encoder's version information. With that, we're excited to announce SVT-AV1-PSY v2.0.0! ๐ŸŽ‰

PSY Updates

Variance boost

  • Moved varboost delta-q adjusting code to happen before TPL, giving TPL the opportunity to work with more accurate superblock delta-q priors, and produce better final rdmult lambda values
    • Fixed rare cases of pulsing at high CRFs (>=40) and strengths (3-4)
    • 2% avg. bitrate reduction for comparable image quality
  • Added an alternative boosting curve (--enable-alt-curve), with different variance/strength tradeoffs
  • Refactored boost code so it internally works with native q-step ratios
  • Removed legacy variance boosting method based on 64x64 values
    • Parameter --new-variance-octile -> --variance-octile

Excitingly, a var-boost mainline merge has been marked with the highest priority issue label by the mainline development team, so we may see this in mainline SVT-AV1 soon! Congrats @juliobbv! ๐ŸŽ‰

Other

  • Presets got faster, so in addition to Preset -2, we have an even slower Preset -3
  • --sharpness now accepts negative values
  • The SVT-AV1-PSY encoder now supports Dolby Vision encoding via Dolby Vision RPUs. To build with Dolby Vision support, install libdovi & pass --enable-libdovi to ./build.sh on macOS/Linux (or enable-libdovi to ./build.bat on Windows).

Mainline Updates

Major API updates

  • Changed the API signaling the End Of Stream (EOS) with the last frame vs with an empty frame
  • OPT_LD_LATENCY2 making the change above is kept in the code to help devs with integration
  • The support of this API change has been merged to ffmpeg with a 2.0 version check
  • Removed the 3-pass VBR mode which changed the calling mechanism of multi-pass VBR
  • Moved to a new versioning scheme where the project major version will be updated every time API/ABI is changed

Encoder

  • Improve the tradeoffs for the random access mode across presets:
  • Speedup presets MR by ~100% and improved quality along with tradeoff improvements across the higher quality presets (!2179,#2158)
  • Improved the compression efficiency of presets M9-M13 by 1-4% (!2179)
  • Simplified VBR multi-pass to use 2 passes to allow integration with ffmpeg
  • Continued adding ARM optimizations for functions with c_only equivalent
  • Replaced the 3-pass VBR with a 2-pass VBR to ease the multi-pass integration with ffmpeg
  • Memory savings of 20-35% for LP 8 mode in preset M6 and below and 1-5% in other modes / presets
  • Film grain table support via --fgs-table (already in SVT-AV1-PSY) (link)
  • Disable film grain denoise by default (already in SVT-AV1-PSY) (link)

Cleanup, bug fixes & documentation

  • Various cleanups and functional bug fixes
  • Update the documentation to reflect the rate control

Thanks for using SVT-AV1-PSY! โ™ฅ๏ธ

Full Changelog: https://github.com/gianni-rosato/svt-av1-psy/commits/v2.0.0

6
1
submitted 8 months ago* (last edited 8 months ago) by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

[2.0.0] - 2024-03-13

Major API updates

  • Changed the API signaling the End Of Stream (EOS) with the last frame vs with an empty frame
  • OPT_LD_LATENCY2 making the change above is kept in the code to help devs with integration
  • The support of this API change has been merged to ffmpeg with a 2.0 version check
  • Removed the 3-pass VBR mode which changed the calling mechanism of multi-pass VBR
  • Moved to a new versioning scheme where the project major version will be updated every time API/ABI is changed

Encoder

  • Improve the tradeoffs for the random access mode across presets:
  • Speedup presets MR by ~100% and improved quality along with tradeoff improvements across the higher quality presets (!2179,#2158)
  • Improved the compression efficiency of presets M9-M13 by 1-4% (!2179)
  • Simplified VBR multi-pass to use 2 passes to allow integration with ffmpeg
  • Continued adding ARM optimizations for functions with c_only equivalent
  • Replaced the 3-pass VBR with a 2-pass VBR to ease the multi-pass integration with ffmpeg
  • Memory savings of 20-35% for LP 8 mode in preset M6 and below and 1-5% in other modes / presets

Cleanup and bug fixes and documentation

  • Various cleanups and functional bug fixes
  • Update the documentation to reflect the rate control changes
7
1
submitted 8 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

It's official that Android will be rolling out dav1d to replace libgav1 as a system wide codec on Android 14 devices, though there is potential for it to be supported as far back as Android 10. Finally, libgav1 is no more!

8
1
submitted 9 months ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

Does anyone know how to determine the level of grain synth used in an encoded video? I have .webms that I've encoded with ffmpeg and svt-av1 but I don't have that grain synth information anymore.

In fact it would be nice if I could just see any other information about an encoded video (rate factor, preset used, etc). These details don't appear when using mediainfo so I presume they are lost and unknowable. But grain synth occurs at decode time, so that should still be something I can figure out, right?

9
1
submitted 9 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

Some big changes have been introduced in SVT-AV1-PSY, courtesy of Clybius, the author of aom-av1-lavish! Here is the changelog:

Feature Additions

  • Tune 3 A new tune based on Tune 2 (SSIM) called SSIM with Subjective Quality Tuning. Generally harms metric performance in exchange for better visual fidelity.
  • --sharpness A parameter for modifying loopfilter deblock sharpness and rate distortion to improve visual fidelity. The default is 0 (no sharpness).

Modified Defaults

  • Default 10-bit color depth. Might still produce 8-bit video when given an 8-bit input.
  • Disable film grain denoising by default, as it often harms visual fidelity.
  • Default to Tune 2 instead of Tune 1, as it reliably outperforms Tune 1 on most metrics.
  • Enable quantization matrices by default.
  • Set minimum QM level to 0 by default.

That's all, folks! Keep an eye on the master branch for more changes in the future!

10
1
submitted 9 months ago by JRepin@lemmy.ml to c/av1@lemmy.ml

Introduced in April 2021 was the initial Vulkan Video support for a new video encode/decode API built around Vulkan. That initial Vulkan Video support was catered to H.264 and H.265 while finally with today's Vulkan 1.3.277 release there is a new extension introduced for AV1 video decoding.

11
1
Aviator 0.5.0 (github.com)
submitted 10 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

Today, we have a very exciting development - Aviator, the Linux GUI for AV1 encoding, has switched to an in-house custom fork of SVT-AV1 dubbed SVT-AV1-PSY!

Featuring development efforts from BlueSwordM (author of the previous custom fork), myself (Gianni), and others, this change will enable us to have much more control over the encoder's development so that it aligns most effectively with Aviator's number one priority: visual quality.

So far, SVT-AV1-PSY's most noteworthy feature is a variance boost patch that appreciably improves intra- and inter-frame fidelity consistency across wide range of content. Visual fidelity per bit is estimated to have increased by up to 5% with this patch, which currently isn't present in mainline SVT-AV1.

Even though this patch should inevitably make it to mainline, the gains from having more direct control are already being realized as we can implement features like this flexibly at a pace we decide.

Aside from that, FFmpeg has been updated to version 6.1, the SCM toggle has been replaced with a more useful Open GOP toggle, and the README has been modified to reflect some of these more recent changes with regard to SVT-AV1-PSY.

Thank you for using Aviator, and happy encoding!

Aviator can be downloaded on Flathub, where 0.5.0 will be available soon.

12
1
submitted 10 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

This blog post on the Codec Wiki by encoder Trix presents extensive benchmarking of SVT-AV1 1.8.0 on animated content using both objective metrics and subjective image comparisons (the subjective part is coming soon). Short high-quality anime clips were encoded directly with SVT-AV1 across a range of settings. SSIMULACRA2 visual quality scores and encoding speeds were measured for each encode, along with bits per pixel to calculate encoding efficiency. The results are presented through graphs showing metric scores and speed, alongside comparison images enabling subjective evaluation of visual quality (again, comparison images coming soon for subjective analysis). This rigorous testing methodology provides insightful analysis of how SVT-AV1 performs when encoding animation.

13
1
submitted 10 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

This program generates an AV1 video encoding command for use with Av1an, a chunked AV1 encoding tool for use with aomenc, SVT-AV1, and rav1e.

This tool takes in the video resolution, frame rate, desired encoder, speed preset, and target bitrate range as command line arguments. Based on these parameters, it calculates settings like tile columns/rows, lag-in-frames, CRF, and encoder speed preset. Then, it injects these into a generated encoding command string.

The output is a full Av1an command that can be run to encode a video based on the specified settings.

14
1
SVT-AV1 1.8.0 (gitlab.com)
submitted 11 months ago by gianni@lemmy.ml to c/av1@lemmy.ml

Encoder

Improve the tradeoffs for the random access mode across presets: Speedup CRF presets M6 to M0 by 17-53% while maintaining similar quality levels Re-adjust CRF presets M7 to M13 for better quality with BD-rate gains ranging from 1-4% Improve the quality and speed of the 1-pass VBR mode Improve Multi Pass VBR algorithm for better quality with BD-rate gains of ~3% on average More details on the per preset improvements can be found in MR !2143

Add API allowing to update bitrate / CRF and Key_frame placement during the encoding session for CBR lowdelay mode and CRF Random Access mode ARM Neon SIMD optimizations for most critical kernels allowing for a 4.5-8x fps speedup vs the c implementation

Cleanup and bug fixes and documentation

Various cleanups and functional bug fixes Update the documentation for preset options and individual features

15
1
submitted 1 year ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

Huge improvements for AV1 users over the last stable HandBrake release.

16
1
submitted 1 year ago* (last edited 1 year ago) by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

I think with the weight of Apple finally behind AV1 it is as blessed of a format as anything can be. Sisvel be damned.

And, a new media engine now includes support for AV1 decode, providing more efficient and high-quality video experiences from streaming services.

I do not see AV1 encode support on this chip's announcement, however.

17
1
submitted 1 year ago* (last edited 9 months ago) by damian101@discuss.tchncs.de to c/av1@lemmy.ml

Another aom psy fork, by me, utilizing patches from the unmaintained psy fork and its popular lavish fork, as well as original changes. It's overall closer to mainline, as I have decided against applying a lot of patches that I found to be more harmful than beneficial for efficiency when applied to current mainline aomenc. If you're missing parameters from aomenc-lavish, please request them with a short explanation, I might add them, currently I have only applied those that I am interested in using myself. Other suggestions are welcome as well.

I plan to frequently merge mainline changes into this fork.

Defaults are much improved, something like a simple --end-usage=q --threads=16 --tune-content=psy --cpu-used=4 --cq-level=20 should provide very good results.

18
1
submitted 1 year ago by gianni@lemmy.ml to c/av1@lemmy.ml

In the world of AV1 encoding, achieving high-quality, efficient compression often requires intricate knowledge & fine-tuning of confounding parameters (aom-av1-lavish ... looking at you, wink). This difficulty is compounded by the fact that you are faced with three open-source encoding options that are all compelling for different reasons. This can make tapping into AV1's potential a daunting task for novice and even intermediate users.

That's where rav1ator-cli comes in. I have attempted to distill weeks (months?) of community parameter testing & expertise into an easy-to-use interactive command line interface. With just a few prompts, rav1ator-cli guides you through choosing an encoder & selecting settings to achieve maximum perceptual efficiency at any speed or quality setting you prefer. Adding in the ability to specify custom parameters, rav1ator-cli provides a smooth on-ramp for newcomers while remaining flexible enough for power users.

Here are some of rav1ator-cli's standout features that make it a superb encoding tool: rAV1ator CLI can:

  • Check if it is installed & up to date on its own without a package manager
  • Download AVX2-optimized encoder binaries compiled with -O3 -flto in most cases & allow the user to install them with detailed instructions
  • Encode with x264, x265, aomenc, SVT-AV1, or rav1e & set a speed preset, CRF/quality value, FFmpeg parameters, and encoder parameters
  • Use pre-defined encoding parameters that are provided so you can say goodbye to cargo culting
  • Generate Av1an encoding commands with the user's chosen settings & run them to encode a provided input video to an MKV output
  • Encode from scratch, or resume a previous rav1ator-cli encode
  • Engage with rich interactivity featuring spinners, prompts, dropdowns, & other glitz
  • Error check downloads by checking hashes on the downloaded binaries for security & convenience

This tool is Linux only. If you'd like to install: These instructions are for Arch Linux specifically, but if you have all the dependencies, you can skip to Step 3 & it'll work on any distro (I'm assuming this includes WSL, too).

  1. Update your system before doing anything. On Arch:
sudo pacman -Syu
  1. Install yay (Arch only) by running the following commands:
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay.git
cd yay && makepkg -si
  1. Next, you'll want to install all of rav1ator-cli's dependencies. You can do that by running:
yay -Sy rust ffmpeg python mkvtoolnix-cli vapoursynth gum numactl l-smash vapoursynth-plugin-lsmashsource av1an ffms2
  1. Install rav1ator-cli:
curl -sOJ https://raw.githubusercontent.com/gianni-rosato/rav1ator-cli/main/rav1ator-cli && chmod +x rav1ator-cli
sudo cp rav1ator-cli /usr/local/bin

Thank you for looking at rAV1ator CLI! You can see demos as well as more info on the project at either link below. GitHub | Codec Wiki

Connect with me: https://discord.gg/bbQD5MjDr3

19
1
submitted 1 year ago* (last edited 1 year ago) by gianni@lemmy.ml to c/av1@lemmy.ml

Hey AV1 Enthusiasts, encoders, and newbies alike,

I remember being completely new to the world of multimedia codec technology, and being totally lost on where to begin learning. To address this, I've decided to create a server tailored toward new learners. If you're looking to deepen your knowledge of multimedia codecs, particularly AV1, or you believe you have valuable insights to share, we've got an amazing community waiting for you.

I am thrilled to invite you to the AV1 for Dummies Discord server, a place dedicated to demystifying the fascinating world of AV1 encoding & beyond. Whether you're a seasoned codec professional or just dipping your toes into this field, there's something here for everyone.

Alongside this, I'm publicly announcing the Codec Wiki, a place where you can read about anything codec-related for hours on end. This wiki aims to demystify the realm of multimedia compression while connecting codec enthusiasts to create a sink of knowledge for the benefit of everyone. It is still under heavy development, so please heed this as you take in the information available on the site. If you have any questions or concerns, the place to ask is in the AV1 for Dummies server.

What's in it for you?

  • ๐Ÿ“š Learning Resources: Access encoding tools, their developers, and an entire wiki dedicated to AV1 & other multimedia codecs.
  • ๐Ÿ’ฌ Engaging Conversations: Join lively discussions, ask questions, and share insights with fellow codec enthusiasts.
  • ๐Ÿง™โ€โ™‚๏ธ Expert Insights: Seasoned experts with rich codec experience are available to discuss your needs with you as you learn.
  • ๐ŸŽฒ Fun Challenges: Participate in codec-related contests and games to make learning enjoyable. (coming soon)
  • ๐Ÿ“Œ Organized Topics: We have dedicated channels to ensure focused discussions, and a forum for asking & answering burning questions.

Ready to dive in? Here's the invite link: discord.gg/bbQD5MjDr3

We're all about respect and open-mindedness, creating a safe space for everyone to learn and grow. Come say hello, introduce yourself, and be a part of our growing community!

Let's learn, explore, and master the intricacies of AV1 and multimedia codecs together. Join us at "AV1 for Dummies" & unlock the world of AV1!

See you there! ๐Ÿš€ ps: I posted this on Reddit as well, but this was not automatically also posted to Lemmy - I did that manually, as I like Lemmy more ;)

20
1
submitted 1 year ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml
21
1
Aviator 0.4.2 (github.com)
submitted 1 year ago by gianni@lemmy.ml to c/av1@lemmy.ml

Updated SVT-AV1 to 1.7.0, which features rebalanced presets & more massive speed improvements In light of SVT-AV1's speedy development, Preset 7 is now high enough quality to be featured as Aviator's default speed preset "Copy Audio" now disables other audio options in the GUI New "Adaptive SCM" toggle (explained in tooltip) Small fixes & adjustments

Download for Linux on Flathub!

22
1
submitted 1 year ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml
23
1
SVT-AV1 v1.7.0 (gitlab.com)
submitted 1 year ago by gianni@lemmy.ml to c/av1@lemmy.ml

Encoder

  • Improve the tradeoffs for the random access mode across presets MR-M13:
  • Quality improvements across all presets and metrics ranging from 0.3% to 4.5% in BD-rate (!2129)
  • Spacing between presets [M1-M6] has been adjusted to account for the tradeoff improvements achieved
  • As a user guidance when comparing v1.7 vs v1.6 in a convexhull encoding setup:
  • v1.7.0 M2 is now at similar quality levels as v1.6.0 M1 while being ~50% faster
  • v1.7.0 M3 is now at similar quality levels as v1.6.0 M2 while being ~50% faster
  • v1.7.0 M4 is now at similar quality levels as v1.6.0 M3 while being ~40% faster
  • v1.7.0 M5 is now at similar quality levels as v1.6.0 M4 while being ~30% faster
  • v1.7.0 M6 is now at similar quality levels as v1.6.0 M5 while being ~25% faster
  • Added an experimental tune SSIM mode yielding ~3-4% additional SSIM BD-rate gains (!2109)

Build, cleanup and bug fixes

  • Various cleanups and functional bug fixes
  • Fix build conflict with libaom
24
1
submitted 1 year ago by GnuLinuxDude@lemmy.ml to c/av1@lemmy.ml

I have been encoding some videos in AV1 lately and I thought I'd share my technique for those who may wish to do some AV1 on their own without having a messy setup. I think this is a pretty clean way, ultimately, to use Av1an's Docker image.

A forewarning: AV1 can be pretty to slow encode with. I've been doing it with DVDs where the 640x480 resolution of the video means a frame can be processed relatively quickly, but videos in 1920x1080 or 4k resolutions might be pretty intense where the encode speed only ends up being a frame a second.

Forewarning pt. 2: Something I learned that I CANNOT rely on is trying a faster encode speed to guesstimate the resulting file size and picture quality and then really maximize my results by lowering the encode speed. My observation has been that a slower encode speed will in fact improve the picture quality (and file size), such that I cannot be sure what something will look like without just encoding a very short sample at a slow speed. OK. Let's begin.

Operating System & Environment

I am using Fedora Linux 38. I'd like to use the Av1an package but that only has an official Arch release. I definitely don't want to spend time compiling this myself, so I will use the official Docker image instead. And I won't use Docker, actually, but Podman. I also use the Fish Shell. Its syntax is very slightly different from Bash's.

Now, Fedora users may know about SELinux. And something that kept happening to me was the security context of some of the files I'm shuffling around my hard drives would end up being not correct, making Podman incapable of seeing the files I'm trying to use. So instead of fixing the context per file (annoying) I just temporarily disabled SELinux.

sudo setenforce Permissive

Container image

From here things are pretty straightforward. I'll pull the docker image, which has a full Av1an setup ready to go.

podman pull docker.io/masterofzen/av1an:master

One little note is that you should use the master tag. A confusing thing about this image is that the latest tag is the old python version, and we want the current Rust version.

Executing Av1an

Now, navigate to whatever directory your source video is in. In my case, I losslessly encoded the DVDs with Handbrake into h264 and passed through the audio/chapter markers, etc. This gave me a good source to work with, even though it was a little bloated in file size. I don't think Av1an accepts MPEG-2, which is why I did that.

First I'll explain what the Podman command is doing for those who aren't familiar with Docker/Podman, and then I'll give a full working example.

podman run -v "$(pwd)":/videos:z --userns=keep-id -it --rm docker.io/masterofzen/av1an:master -i sourcevideo.mp4 -s scenes.csv --pix-format yuv420p10le -o output.webm -v "--VIDEO_OPTIONS" --keep -a "--AUDIO_OPTIONS"

  • podman run - Execute a container
  • -v "$(pwd)":/videos:z - Mount the present working directory as /videos in the container, and the :z is an SELinux labeling thing that can be dropped for non-SELinux users.
  • --userns=keep-id - This flag helps keep the user id and group ids consistent between the host and container so that they don't get mangled. Your output file will belong to your user.
  • -it - Execute the command in a visible shell session
  • --rm - Remove the container (not the image, the container) when the command is done executing.

Final example

The rest of the flags are for Av1an itself, or for the encoders. So here's a full working example of how I used it, to encode with aomenc and Opus for the audio. Av1an uses aomenc by default.

podman run -v "$(pwd)":/videos:z --userns=keep-id -it --rm docker.io/masterofzen/av1an:master -i sourcevideo.mp4 -s scenes.csv --pix-format yuv420p10le -o output.webm -v " --cpu-used=3 --enable-qm=1 --threads=4 -b 10 --end-usage=q --cq-level=28 --lag-in-frames=48 --auto-alt-ref=1 --enable-fwd-kf=1" --keep -a "-c:a libopus -b:a 128k"

I think for an explanation for what individual flags do, and perhaps some guidance on how to use them effectively, I can only refer one to the guide written by Reddit user BlueSwordM https://www.reddit.com/r/AV1/comments/t59j32/encoder_tuning_part_4_a_2nd_generation_guide_to/

25
1
submitted 1 year ago by gianni@lemmy.ml to c/av1@lemmy.ml

Since what happened with Reddit could happen with Discord at any time (corporate greed), I started an AV1 server on Revolt. Please come check it out! Unlike discord, Revolt also supports AV1 video embeds...

view more: next โ€บ

AV1 Community

145 readers
5 users here now

All things relating to the AV1 video codec.

founded 1 year ago
MODERATORS