Benutzer-Werkzeuge

Webseiten-Werkzeuge


vp9

Inhaltsverzeichnis

VP9

siehe auch Filmwandler

Ein Film aus dem Video-Codec VP9 und dem Audio-Codec Vorbis oder Opus im Container WebM ist HTML5-kompatibel und kann somit in jedem vernünftigen Browser abgespielt werden. Der Video-Codec VP9 wird u.a. auch von YouTube verwendet. Leider kann der Container WebM nur Untertitel im Text-Format beinhalten…

Hilfe zu VP9-Kodec:

ffmpeg -h encoder=libvpx-vp9

ein einfaches Kommando:

ffmpeg -i input.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -f matroska film.mkv
ffmpeg -i input.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -cpu-used 4 -speed 4 -sharpness 0 -tune ssim -aq-mode 1 -row-mt 1 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -f matroska film.mkv

HDR in SDR umwandeln:

ffmpeg -i input.avi -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -f matroska film.mkv
ffmpeg -i input.avi -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -cpu-used 4 -speed 4 -sharpness 0 -tune ssim -aq-mode 1 -row-mt 1 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -f matroska film.mkv

einen Film im Zeilensprungverfahren in den progressiven Bildaufbau umstellen (ist sehr langsam):

ffmpeg -i input.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -vf yadif=1/3,mcdeint=mode=extra_slow,scale=768x576,pad='max(iw\,ih*(4/3)):ow/(4/3):(ow-iw)/2:(oh-ih)/2:black',scale=744x558,setdar='4/3' -g 300 -keyint_min 300 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -disposition:a:0 default -metadata title="Filmname" -metadata description='Filmbeschreibung' -f matroska film.mkv
ffmpeg -i input.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -cpu-used 4 -speed 4 -sharpness 0 -tune ssim -aq-mode 1 -row-mt 1 -vf yadif=1/3,mcdeint=mode=extra_slow,scale=768x576,pad='max(iw\,ih*(4/3)):ow/(4/3):(ow-iw)/2:(oh-ih)/2:black',scale=744x558,setdar='4/3' -g 300 -keyint_min 300 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -disposition:a:0 default -metadata title="Filmname" -metadata description='Filmbeschreibung' -f matroska film.mkv

einen kompletten 16/9-Film scannen bevor mit dem kodieren begonnen wird:

ffmpeg -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts -i film.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -vf scale=1024x576,pad='max(iw\,ih*(16/9)):ow/(16/9):(ow-iw)/2:(oh-ih)/2:black',scale=858x482,setdar='16/9' -g 300 -keyint_min 300 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -disposition:a:0 default -metadata title="Filmname" -metadata description='Filmbeschreibung' -f matroska film.mkv
ffmpeg -probesize 9223372036854M -analyzeduration 9223372036854M -fflags +genpts -i film.avi -map 0:v -c:v libvpx-vp9 -crf 32 -b:v 0 -cpu-used 4 -speed 4 -sharpness 0 -tune ssim -aq-mode 1 -row-mt 1 -vf scale=1024x576,pad='max(iw\,ih*(16/9)):ow/(16/9):(ow-iw)/2:(oh-ih)/2:black',scale=858x482,setdar='16/9' -g 300 -keyint_min 300 -c:a libvorbis -q:a 6 -map 0:a:0 -c:s copy -disposition:a:0 default -metadata title="Filmname" -metadata description='Filmbeschreibung' -f matroska film.mkv

SDR vs. HDR

# SDR (8 Bit)
ffmpeg -i Film.mkv -profile:v 0 -c:v libvpx-vp9 ...

FFmpeg and VP9 Encoding GuideTwo-pass is the recommended encoding method for libvpx-vp9 as some quality-enhancing encoder features are only available in 2-pass mode.

# SDR (8 Bit) mit konstanter Qualität und 2-Pass-Codierung, das sollte man mal testen...
ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -color_range 1 -profile:v 0 -pass 1 -an -sn -f null /dev/null && \
ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -color_range 1 -profile:v 0 -pass 2 strobe_scientist_crf32.webm
rm -f ffmpeg2pass-0.log

HDR (10/12 Bit) erfordert eine 2-Pass-Codierung!

VP9 HDR-CodierungHDR erfordert eine 2-Pass-Codierung. In diesem Beispiel wird der erste Durchlauf an /dev/null ausgegeben und während der zweite Durchlauf im Arbeitsspeicher verarbeitet wird.

# HDR-Codierung nach SMPTE 2084 (PQ EOTF)
ffmpeg -i Film.mkv -b:v 18000000 -pass 1 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -maxrate 26800000 -minrate 8040000 -profile:v 2 -c:v libvpx-vp9 -f null /dev/null && \
ffmpeg -i Film.mkv -b:v 18000000 -pass 2 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -maxrate 26800000 -minrate 8040000 -profile:v 2 -c:v libvpx-vp9 2pass_HDR_Film_18Mbps.webm
rm -f ffmpeg2pass-0.log
# Beispiel 18 Mbit/s 4K 2-Pass
ffmpeg -y -report -i Film.mkv -b:v 18000000 -speed 4 -pass 1 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -maxrate 20800000 -minrate 15040000 -profile:v 2 -vcodec libvpx-vp9 -f null /dev/null && \
ffmpeg -y -report -i Film.mkv -b:v 18000000 -pass 2 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -maxrate 20800000 -minrate 15040000 -profile:v 2 -vcodec libvpx-vp9 2pass_HDR_Film_18Mbps-static.webm
rm -f ffmpeg2pass-0.log
# HDR (10/12 Bit) mit konstanter Qualität und 2-Pass-Codierung, das sollte man mal testen...
ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -profile:v 2 -pass 1 -an -sn -f null /dev/null && \
ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -pix_fmt yuv420p10le -color_primaries 9 -color_trc 16 -colorspace 9 -color_range 1 -profile:v 2 -pass 2 2pass_HDR_Film_crf32.webm
rm -f ffmpeg2pass-0.log

ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -color_primaries 9 -color_range 1 -profile:v 2 -pass 1 -an -sn -f null /dev/null && \
ffmpeg -i Film.mkv -c:v libvpx-vp9 -crf 32 -b:v 0 -color_primaries 9 -color_range 1 -profile:v 2 -pass 2 2pass_HDR_Film_crf32.webm
rm -f ffmpeg2pass-0.log

ggf. sollte man überlegen, HDR-Material in AV1 zu transkodieren…

/home/http/wiki/data/pages/vp9.txt · Zuletzt geändert: von manfred