Benutzer-Werkzeuge

Webseiten-Werkzeuge


vp9

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
vp9 [2023-06-03 10:24:23] – [SDR vs. HDR] manfredvp9 [2023-06-12 22:39:16] (aktuell) – [VP9] manfred
Zeile 1: Zeile 1:
 +====== 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 [[https://www.youtube.com|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 ...
 +
 +[[https://trac.ffmpeg.org/wiki/Encode/VP9#twopass|FFmpeg and VP9 Encoding Guide]] => ''Two-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!
 +
 +[[https://developers.google.com/media/vp9/hdr-encoding?hl=de|VP9 HDR-Codierung]] => ''HDR 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...
 +