Schlagwort-Archive: Video

HOWTO – FFMpeg Komprimierung unter Linux

Problem:
Ich habe einige selbstaufgenommene Videos im m2t Format vorliegen und möchte diese nun fürs Web mit geringem Verlust komprimieren. Die Audiospur ist auch nicht astrein und sollte normalisiert werden.

Lösung:
Nutzung von ffmpeg und normalize unter Debian über deb-multimedia.org

apt-get -t "o=Unofficial Multimedia Packages" install ffmpeg normalize-audio

Nun sind verschiedene Schritte nötig (myvideo.m2t wird exemplarisch genutzt):

1. Audio vom Video trennen

ffmpeg -i myvideo.m2t -c:a pcm_s16le -vn myvideo.m2t.wav

2. Audio normalisieren

normalize-audio -v myvideo.m2t.wav

3. Video und normalisiertes Audiofile komprimieren und Wasserzeichen mylogo.png oben links hinzufügen

ffmpeg -i myvideo.m2t -i myvideo.m2t.wav -map 0:0 -map 1:0 -s 640x480 -r 30000/1001 -b 200k -bt 240k -vcodec libx264 -vpre ipod640 -vf "movie=mylogo.png [watermark];[in][watermark] overlay=10:10 [out]" -acodec libfaac -ac 2 -ar 48000 -ab 192k myvideo4iphone.m2t.mp4

Fertig! nun kann myvideo4iphone.m2t.mp4 getestet werden. 4 min Video werden ca. 10 MB groß

Viel Spass beim konvertieren!

Inspiriert wurde dieser Beitrag durch:
http://rodrigopolo.com/ffmpeg/cheats.php#FFmpeg_Encoding
http://www.idude.net/index.php/how-to-watermark-a-video-using-ffmpeg/
http://superuser.com/questions/323119/how-can-i-normalize-audio-using-ffmpeg

Apache2 Flashstreaming

Heute durfte ich ein Flashstreaming für ein CMS realisieren.

Wer schon mal einen Film o.ä. verlinkt hat, weiss vllt. das man innerhalb der Dateien nicht an beliebige Punkte springen kann ohne die komplette Datei heruntergeladen zu haben. Dies erzeugt viel Traffic, je nach Größe der Datei können auch immense Extrakosten durch Zusatztraffic entstehen

Genau diese Möglichkeit bietet aber Streaming!

Youtube verwendet zum Beispiel als Basis einen lighttpd welcher schon von Haus aus eine Streamingunterstützung mitbringt. Wie aber schaut es mit einem Apache aus?

Dieser bringt die Unterstützung leider nicht mit, sie kann aber nachgepflegt werden.

Um nun Flashvideos (*.flv) von einem Server aus streamen zu können, müssen folgende Requirements erfüllt werden:

1. Apache2 für Streaming vorbereiten

Download der Modul-Sourcen – ich konnte auch noch eine leicht überarbeitete Version im Netz finden.

Ich habe die überarbeitete Version benutzt welche folgende Benefits mitbringt

I’ve modified the module to fix content-length and add last-modified headers. I’ve also added a fix when offset is set to wrong position (i.e. past video length).

Compilieren und Installieren wird mittels apxs2 erledigt.

Schliesslich muss man das Installierte Modul noch in der Konfiguration vermerken, in meinem Fall für *.flv Dateien.

Kurzform als root:

cd ~
wget http://thinkscape.biz/community/mod_flvx.c
aptitude install apache2-prefork-dev
apxs2 -c -i mod_flvx.c
nano /etc/apache2/conf.d/mod_flvx.conf

mit folgendem Inhalt

LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
AddHandler flv-stream .flv

und schliesslich ein Neustart des Apache2 Services

/etc/init.d/apache2 restart

2. Flashdateien mit Metadaten/Keyframes ausstatten

Dies ist ein sehr wichtiger Schritt, denn ohne dies kann das Bewegen innerhalb der Datei nicht funktionieren!

Um flv Dateien entsprechend zu modifizieren, gibt es ein sehr mächtiges Werkzeug mit welchem man flv Dateien auch schneiden oder anderweitig modifizieren kann. All dies könnt Ihr auf der Seite des Herstellers von flvtool2 nachlesen.

Kurzform als root:

aptitude install ruby
wget http://files.rubyforge.mmmultiworks.com/flvtool2/flvtool2-1.0.6.tgz
tar xfz flvtool2-1.0.6.tgz; cd flvtool2-1.0.6
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install

nun steht das Tool flvtool2 zur Verfügung!

Um die FLV Dateien mit den Metadaten zu bestücken, muss auf jede betreffende Datei

flvtool2 -U datei.flv

angewendet werden.

Nach diesem Schritt kann man nun die Filme zB über den Flowplayer streamen lassen und in seine Webseiten einbauen.

Videos im Framebuffer anschauen

Es kommt zwar selten vor, aber gelegentlich darf es doch mal sein – wir schauen eine Videodatei (mpg, avi,usw.) auf der Konsole an. Genauer: in KEINEM Fenster eines X-Servers sondern richtig RAW auf der Konsole – /dev/tty1 eben.

Dazu benötigt man ein aktives Framebuffermodul passend zur Grafikkarte, ein konfiguriertes Sounddevice (ALSA) und den mplayer, welcher sich als vorzüglich für den Einsatz in der Konsole zeigt.

Wenn diese Anforderungen erfüllt sind, kann man mittels

mplayer -vo fbdev2 -vf scale=1280:1024 /pfad/zur/datei.avi

die Datei auf der Konsole ansehen.

Viel Spass dabei 😀