W rozdziale:
- Wprowadzenie
- Kontenery wideo
- Kodeki wideo
- Kodeki audio
- Obsługa kodeków
- Licencja kodeka H264
- Poradnik do programu Video Converter
- Poradnik do programu Firefogg
- Poradnik do programu ffmpeg2theora
- Poradnik do programu HandBrake
- Poradnik do programu ffmpeg
- Element HTML5 video
- Wideo w Internet Explorerze
- iPhone, iPad i Android
- Przykład
Kodowanie wideo w formacie WebM przy użyciu narzędzia ffmpeg
Format WebM jest w pełni obsługiwany przez ffmpeg od wersji 0.6. W wierszu poleceń wpisz polecenie ffmpeg bez żadnych parametrów, aby sprawdzić czy narzędzie zostało skompilowane z obsługą VP8:
you@localhost$ ffmpeg FFmpeg version SVN-r23197, Copyright (c) 2000-2010 the FFmpeg developers built on May 19 2010 22:32:20 with gcc 4.4.3 configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab --enable-libvorbis --enable-libvpx
Jeśli nie widzisz napisów --enable-libvorbis i --enable-libvpx, to masz niewłaściwą wersję ffmpeg. (Jeśli samodzielnie skompilowałeś program, sprawdź czy nie masz zainstalowanych dwóch wersji. Nie przejmuj się tym, nie spowoduje to żadnych konfliktów. Będziesz tylko musiał wpisać pełną ścieżkę do wersji ffmpeg z obsługą VP8.)
Wykonamy kodowanie dwuprzebiegowe. W pierwszym przebiegu plik wideo jest tylko skanowany (-i pr6.dv) i zapisywane są pewne informacje w dzienniku (któremu automatycznie zostanie nadana nazwa pr6.dv-0.log). Kodek wideo określamy za pomocą parametru -vcodec:
you@localhost$ ffmpeg -pass 1 -passlogfile pr6.dv -threads 16 -keyint_min 0 -g 250 -skip_threshold 0 -qmin 1 -qmax 51 -i pr6.dv -vcodec libvpx -b 614400 -s 320x240 -aspect 4:3 -an -y NUL
Większa część polecenia ffmpeg nie ma nic wspólnego z VP8 ani WebM. Kodek libvpx ma kilka opcji dotyczących VP8, które można przekazać do ffmpeg, ale nie wiem jak one działają. Gdy czego się o nich dowiem i uznam, że są tego warte, to napiszę coś o nich w tym miejscu.
W drugim przebiegu ffmpeg czyta zdobyte za pierwszym razem informacje oraz koduje audio i wideo. W wyniku tego powstaje plik z rozszerzeniem .webm.
you@localhost$ ffmpeg -pass 2 -passlogfile pr6.dv -threads 16 -keyint_min 0 -g 250 -skip_threshold 0 -qmin 1 -qmax 51 -i pr6.dv -vcodec libvpx -b 614400 -s 320x240 -aspect 4:3 -acodec libvorbis -y pr6.webm
W poleceniu tym zostało użytych pięć ważnych parametrów:
-vcodec libvpxoznacza, że do kodowania używamy kodeka VP8. W WebM zawsze używany jest kodek wideo VP8.-b 614400określa szybkość transmisji bitów. W odróżnieniu od innych formatów,libvpxnależy podawać liczbę bitów, nie kilobitów. Jeśli chcesz ustawić szybkość transmisji bitów na 600, musisz pomnożyć 600 przez 1024 i wpisać wynik równy 614400.-s 320x240określa szerokość i wysokość docelowego filmu.-aspect 4:3określa współczynnik kształtu obrazu filmu. Filmy o standardowej rozdzielczości najczęściej mają współczynnik kształtu obrazu 4:3, a większość filmów o wysokiej rozdzielczości ma kształt 16:9 lub 16:10. Z moich doświadczeń wynika, że lepiej jest to ustawienie zdefiniować własnoręcznie w wierszu poleceń niż liczyć, żeffmpegautomatycznie je wykryje.-acodec libvorbisoznacza, że używamy kodeka audio Vorbis. W WebM zawsze używany jest kodek audio Vorbis.
- Wprowadzenie
- Kontenery wideo
- Kodeki wideo
- Kodeki audio
- Obsługa kodeków
- Licencja kodeka H264
- Poradnik do programu Video Converter
- Poradnik do programu Firefogg
- Poradnik do programu ffmpeg2theora
- Poradnik do programu HandBrake
- Poradnik do programu ffmpeg
- Element HTML5 video
- Wideo w Internet Explorerze
- iPhone, iPad i Android
- Przykład



Dodaj komentarz