Archiv

Archiv für die Kategorie ‘Anleitungen’

[Tutorial] RTMPDump zum Mitschneiden von rtmp:// Streams

2. September 2010

Der 12. Rundfunkänderungsstaatsvertrag hat mit sich gebracht, dass aus irgendeinem Grund ein riesiger Teil der Online-Inhalte der Öffentlich-Rechtlichen gelöscht werden sollten und aktuell eine kürzere Speicherdauer für die meisten Inhalte gilt. Eventuell mag das so manchen dazu bewegen seine Lieblingssenden direkt auf der heimischen Festplatte speichern zu wollen quasi als legalen Privatmitschnitt. Das Vorgehen werde ich an zwei Beispielen beschreiben.

Um rtmp:// Streams mitzuschneiden kann man auf diverse Tools zurückgreifen – ich werde die mächtige Software RTMPDump benutzen, die es für Linux, Windows und Android gibt. Ich benutze in diesem Tutorial die Windows-Version, wobei die Parameter unter Linux und Windows die gleichen sind.

Beispiel 1: WDR Mediathek – Rockpalast

Rockpalast Logo

Rockpalast Logo

In der Sendung Rockpalast werden Konzerte von beliebten Künstlern ausgestrahlt, allerdings sehr spät in der Nacht und ohne Wiederholung. Darum könnte es interessant sein eine Sendung noch einmal abzurufen. Man sucht sich also ein Konzert und geht zur Videowiedergabe. Ein Flash-Player macht sich bereit, jedoch wollen wir die Inhalte ja speichern und nicht direkt gucken. Wir gucken uns den Quelltext an und suchen die Zeile, die in etwa so aussieht:

value="startPicture=/tv/rockpalast/codebase/img/audioplayerbild_512x288.jpg&dslSrc=rtmp://gffstream.fcod.llnwd.net/a792/e2/tv/rockpalast/live/2010/morcheeba.mp4&offset=&autoPlay=false&useFLVPlayback=1

Davon interessiert uns nur die Stelle, in der der direkte Stream beschrieben wird:

rtmp://gffstream.fcod.llnwd.net/a792/e2/tv/rockpalast/live/2010/morcheeba.mp4

Mit dieser URL geht es alles ganz einfach. Unter Windows wird RTMPDump für das Beispiel so aufgerufen:

C:\rtmpdump-2.3\rtmpdump.exe -r rtmp://gffstream.fcod.llnwd.net/a792/e2/tv/rockpalast/live/2010/morcheeba.mp4 -o "C:\Downloads\morcheeba.mp4"

Die hier genutzten Optionen sind diese:

-r url           URL (e.g. rtmp://host[:port]/path)

-o string         FLV output file name, if the file name is – print stream to stdout

Beispiel 2: RBB – Brandenburg Aktuell

Brandenburg Aktuell

Brandenburg Aktuell

Bei einigen Stream geht es nicht ganz so einfach wie im 1. Beispiel. Es kann ein Fehler auftreten, der so lautet: “WARNING: Received FLV packet before play()! Ignoring.” Das bedeutet der Stream wurde zwar gefunden, kann aber nicht korrekt aufgenommen werden. Wir brauchen dafür diesen Parameter:

-y path      Overrides the playpath parsed from rtmp url

Der Quellcode vom 2. Beispiel sieht wie folgt aus:

streamer=rtmp://stream5.rbb-online.de/rbb;videotitle=BRANDENBURG AKTUELL [...] href="/aktuell/aktuell_20100901_sdg_MP4H264_m_16_9_512x288.mp4"

Es muss wohl eine Art Umleitung sein, die man mit -y direkt auflöst. Außerdem muss man die Endung bei dieser Option vor dem Dateipfad angeben. Der Befehl um diese Datei zu speichern lautet in diesem Fall also:

C:\rtmpdump-2.3\rtmpdump.exe -r rtmp://stream5.rbb-online.de/rbb -y mp4:aktuell/aktuell_20100901_sdg_MP4H264_m_16_9_512x288 -o "C:\Downloads\Stream-Download.mp4"

Und schon gehts los und alle Inhalte landen auf der Festplatte. Das ist natürlich auf andere Streams auch anwendbar. Wenn es dann losgeht sieht das ganze so aus:

Downloaden eines rtmp-Streams

Downloaden eines rtmp-Streams

RTMPDump – Projektseite

Author: chris Categories: Anleitungen Tags: , , , ,

Dhyana – Screenshots und Previews von Filmen unter Debian

13. Januar 2010

Wer mir der Bearbeitung mit Videos zu tun hat, der hat unter Umständen Interesse an der Erstellung von Vorschau-Bildern. Da mein Rechenknecht keinen Bildschirm hat mache ich einige Sachen über SSH auf dem Server, unter anderem benötige ich ab und an einen Screenshot. Dhyana ist ein ganz hervorragendes Perl-Script, was genau das tut.

Um Dhyana einsetzen zu können benötigt man einige Abhängigkeiten, die aber schnell installiert sind.

apt-get install perl mplayer imagemagick ffmpeg libfile-chdir-perl libgetopt-argvfile-perl bzip2

Man benötigt noch ein Tool des Mplayers, was aber nicht im Mplayer-Packet enthalten ist. Man läd sich also mal den aktuellen Mplayer-Snapshot:

wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-checkout-snapshot.tar.bz2

was dann entpackt wird..

tar xf mplayer-checkout-snapshot.tar.bz2

Man geht mal in den Tools-Ordner

cd mplayer-checkout-*/TOOLS

und guckt ob die midentify.sh drin ist. Wenn sie es ist kopieren wir sie in unseren Binary-Ordner, in dem Dhyana beim Ausführen nachguckt.

cp midentify.sh /usr/bin/midentify && chmod +x /usr/bin/midentify

Wir besorgen uns nun, da wir die Vorbereitungen abgeschlossen haben, das Perl-Script Dhyana von hier und machen es ausführbar:
http://tobyinkster.co.uk/blog/2008/01/06/dhyana/

wget http://tobyinkster.co.uk/blog/2008/01/06/dhyana/files/dhyana.pl && chmod +x dhyana.pl

Das war es auch schon. Wir können nun das Script ausführen zb. mit:

./dhyana.pl big_buck_bunny_1080p_surround.avi

Und fertig, unsere Vorschau liegt im gleichen Ordner wie das Ausgangsmaterial und sieht dann so aus:

Beispiel: big_buck_bunny_1080p_surround.jpg

Dhyana bietet noch die Möglichkeit einige Einstellungen anzupassen. Die Parameter könnt ihr  euch hier angucken. Es ist auch sehr einfach im Script selbst ein bisschen rumzuschrauben.

Usage:
      dhyana.pl [options] file [cols [rows [geometry [title]]]]
      dhyana.pl --multi [options] file [file ...]
 
      Options:
        --help                   brief help message
        --man                    full documentation
        --version                print version number
        --verbose, -v            increase verbosity
        --quiet                  no status output
        --path TOOL=PATH         set path for external tool
 
  Capture options:
        --cols=X, -c X           columns of images to capture (default 4)
        --rows=Y, -r Y           rows of images to capture (default 6)
        --geometry=G, -g G       geometry of thumbnails (default 'auto')
        --title=T, -t T          title for thumbnails (filename default)
        --capture-mode=M, -C M   capture technique (default 'auto')
 
  Style options:
        --background             background colour (e.g. 'green', '#00ff00')
        --font-family            path to TTF file for text
        --font-size              size of text in pixels
        --colour, --color        colour for text
        --heading-font-family    path to TTF file for heading
        --heading-font-size      size of heading in pixels
        --heading-colour         colour for heading

Preis: Kostenlos | Webseite

sql Dateien in MySql Datenbank importieren

6. Dezember 2009

Man muss um Datenbanken wieder einzuspielen nicht Programme wie PHPMyAdmin benutzten, wenn man auf seinen Webspace, vServer bzw Root-Server per SSH zugreifen kann. Liegt eine sql-Datei vor so kann man ganz einfach folgenden Command benutzen:

 mysql -h localhost -u Username -p Datenbankname < /link/zur/datei.sql

Viel Spaß

Author: chris Categories: Anleitungen Tags: , ,

Extrahieren einer Tonspur aus einer MKV unter Debian

6. Dezember 2009

Immer öfter wird der Matroska-Container als Container für x264-codiertes Video mit einer Audiospur verwendet. Auch Untertitel oder weitere Audiospuren kann der Container aufnehmen. Wenn man ein wenig zum Beispiel mit Fernsehaufnahmen rumspielt kann man schonmal in die Situation kommen, dass man aus einem MKV-Container nur eine bestimmte Audiospur oder Untertitel-Informationen extrahieren möchte. Unter Windows ist das leicht zu bewerkstelligen, unter Debian und Ubuntu aber eben so einfach.

Nachdem man aus den Binaries per “apt-get install mkvtoolnix” das MKVTool installiert hat kann man auch MKVExtract verwenden. Auf der Kommandozeile guckt man erst einmal was für Spuren in der MKV enthalten sind mit:

mkvmerge -i container.mkv

Ausgegeben wird dann etwas wie:

Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AC3)
Track ID 3: subtitles (S_TEXT/UTF8)

Man weiß also nun, dass der Container 3 Elemente aufbewahrt. Um nun ein Element aus dem Container zu extrahieren benutzt man nun mkvextract, die 2 steht für die ID, die wir ja vorher abgelesen haben:

mkvextract tracks container.mkv 2:tonspur.ac3

Das kann nun ein wenig dauern und ihr habt die extrahierte Tonspur. Um Untertitel zu extrahieren benutzt man dementsprechend folgenden Befehl:

mkvextract tracks container.mkv 3:untertitel.srt

Viel Spaß beim basteln, inspiriert hat mich Geekology ;)

[Tutorial] Saubere Installation von Nginx mit PHP und MySQL auf Debian

30. August 2009

Ich habe leider keine Anleitung gefunden, die die Installation von Nginx wirklich gut beschreibt und habe daher beschlossen selbst eine zu machen. Sie dient mir als Denkstütze und hilft euch hoffentlich unter Umständen auch mal. Wir fangen an mit der Installation des MySQL Servers.

aptitude install mysql-server mysql-client

Kurz und schmerzlos, Passwort vergeben und fertig. Dann wird Nginx installiert, was auch noch easy ist:

aptitude install nginx

Da er sich nach der Installation nicht allein startet tuen wir das:

/etc/init.d/nginx start

Nun installieren wir erstmal PHP und einige Module wie zum Beispiel unter anderem das MySQL Modul.

aptitude install php5-cgi php5-mysql php5-gd php-pear

In der php.ini

nano /etc/php5/cgi/php.ini

ändern wir nun diese Angabe wir folgt

[...]
cgi.fix_pathinfo = 1
[...]

Da Nginx leider nich ab Werk mit PHP-Unterstützung kommt müssen wir diese noch über CGI einrichten. Andere Anleitungen schlagen hier vor den Webserver Lighttpd zu installieren, weil dort das Spawn-fcgi Packet enthalten ist, was wir brauchen. Das ist aber absolut überflüssig, da wir das auch selbst kompilieren können. Dazu laden wir es uns herunter, entpacken und wechseln in den Ordner:
http://redmine.lighttpd.net/projects/spawn-fcgi/news

wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz && tar xf spawn-fcgi-1.6.3.tar.gz && cd spawn-fcgi-1.6.3

Wir führen Automake aus (Packet automake muss installiert sein)..

./autogen.sh

und konfigurieren Spawn-fcgi

./configure

Nun installieren wir es und haben damit nur das Packet auf unser System angepasst installiert.

make && make install

Nun starten wir einen Fast CGI Daemon für die PHP-Unterstützung auf Port 9000

/usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

und packen den Befehl zusammen mit dem Startbefehl für Nginx (von oben) in den Systemstart von Debian.

/etc/rc.local

Meine sieht dann zum Beispiel so aus:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/ph$
/etc/init.d/nginx start
exit 0

Wobei ich den Webserver auch durch einen Benutzer starten lasse. Wir editieren die Standard-Einstellung von Nginx für die default-Seite wie folgt:

nano /etc/nginx/sites-available/default

Dieser Bereich wird geändert:

location ~ .php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
include        fastcgi_params;
}

Man beachte dabei die stelle include fastcgi_params, die wegen einem Bug vorher zusammen geschrieben wurde. Das war auch schon alles..man startet Nginx neu und alles funktioniert ;)

/etc/init.d/nginx restart

Viel Spaß

Author: chris Categories: Anleitungen, For Dummies, Linux, Tools Tags:

[Tutorial] Dropbox unter Ubuntu 8.10

13. Mai 2009

In mein neues Easy Peasy (Ubuntu 8.10) wollte ich Dropbox integrieren und um das so einfach wie möglich durchzuführen habe ich den Packetmanager genutzt. Man muss dem Packetmanager also die Quelle eines neuen Repositorys beibringen, die Programmliste des Repositorys updaten und Dropbox installieren.

Fangen wir an..es wird zunächst eine neue Datei im Ordner der Packetverwaltung erstellt. Beachten, dass die Installation als Superuser passieren sollte (sudo su).

touch /etc/apt/source.list.d/dropbox.list

dann wird diese mit dem Editor eurer Wahl geöffnet, ich mag nano sehr.

nano /etc/apt/source.list.d/dropbox.list

In die Datei speichern wir jetzt die Quellen

deb http://linux.getdropbox.com/ubuntu intrepid main
deb-src http://linux.getdropbox.com/ubuntu intrepid main

und speichern ab. Es wird aktualisiert mit

apt-get update

und anschließend installiert mit:

apt-get install nautilus-dropbox

Im Reiter Internet wurde Dropbox nun abgelegt und bei Aufruf werden dann alle benötigten Daten geholt.

Dropbox Installation

Dropbox Installation

Die Benutzerdaten können eingegeben werden und wie gewohnt der Dropbox-Pfad auf dem Rechner. Fertig.

Author: chris Categories: Anleitungen, For Dummies, Linux, Tools Tags: , ,