Table of Contents

Erstellen von Videos im WebM Format

WebM?

WebM ist ein opensource Videoformat, speziell entwickelt um das Standardformat für HTML5 Videos zu werden. Das Format besteht aus dem VP8 Videocodec und dem Vorbis Audioformat verpackt in einem auf Matroska basierten Container.

Kompatible Browser

Chromium dev-channel Chromium snapshots Firefox webm-builds Opera webm-builds

WebM Plugins für Programme

WebM Plugins für Adobe Software

Videos ins WebM Format bringen

vpxenc

Vpxenc ist der “offizielle” Encoder des webm Projekts. Der hat sogar hübsche Dokumentation :)

Das executable verwurstet am liebsten y4m files, die man entweder zb vom xiph.org server laden kann oder mit gstreamer/mencoder/whatnot erzeugt.

vpxenc --ivf --threads=2 --good --cpu-used=0 --end-usage=2 --cq-level=X --target-bitrate=Y --auto-alt-ref=1 720p5994_stockholm_ter.ivf 720p5994_stockholm_ter.y4m

([15:55:19] <jk8> targets quality X without exceeding bitrate Y)

VP9 Test Bashscript

#!/bin/sh
 
for i in 4 3 2 1 0
do
./libvpx/vpxenc --codec=vp9 --ivf --good --cpu-used=$i --lag-in-frames=25 --auto-alt-ref=1 --passes=2 --target-bitrate=2000 --output=./libvpx/vp9-cpu-used-$i.ivf ~/Videos/tmp/sintel_trailer_2k_1080p24.y4m
done

FFmpeg

Um mit FFmpeg WebM-Videos erstellen zu können, braucht es (noch) ein paar Patches. Manche Linuxdistributionen haben schon Pakete für ein gepatchtes FFmpeg, z.B. Arch Linux im Arch User Repository oder Gentoo im Bugtracker

Beispielkommandozeilen

 ffmpeg -i 480/sintel_trailer_2k_%04d.png -i sintel_trailer-audio.flac -f webm -vcodec libvpx -acodec vorbis -sameq sintel_trailer_480p.mkv
 
 mkfifo pipe.yuv ; ffmpeg -i /media/E436B32136B2F420/larry_crown.vob -vcodec rawvideo -aspect 1:1 -vf scale=1024:576 pipe.yuv | vpxenc pipe.yuv -o larry_crown_video.webm --i420 -w 1024 -h 576 --fps=25000/1001 -v -t 4 --best --end-usage=vbr --auto-alt-ref=1 --lag-in-frames=20 --kf-min-dist=0 --kf-max-dist=360 --cq-level=20 --min-q=20 --max-q=20
 

FFmpeg verwurstet auch nahezu jedes andere Audio- und Videoformat, ist also eine recht universeller Encoder :-)

Optionen

 [14:22:21] <basilgohar> ffmpeg -i source.mkv -vcodec libvpx -qmin 15 -qmax 15 -g 250 -acodec libvorbix -aq 4 output.webm
 [14:22:37] <bgaute> *libvorbis
 [14:22:37] <basilgohar> For the types of videos I work with, that set of options works very well.

GStreamer

Siehe hier :)