Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (40 sloc) 2.77 KB
Die Idee ist, für die dienstägliche offene Raumzeitlaborierung ein Google+ Hangout anzubieten und gleichzeitig aufzuzeichnen. Geschehen soll das ganze zunächst mit einfachen Mitteln, d.h. mit einer USB-Webcam unter Linux.
== Voraussetzungen ==
uvcvideo webcam ist /dev/video0.
Getestet habe ich mit linux 3.1 und v4l2loopback 0.5.0. Folgendermaßen installiert und lädt man das Modul:
apt-get install v4l2loopback-dkms
modprobe v4l2loopback
== Schritt 1 ==
Video von der Webcam in das loopback-device schaufeln:
gst-launch v4l2src ! 'video/x-raw-yuv,width=800,height=448,framerate=20/1' ! \
queue ! videorate ! 'video/x-raw-yuv,framerate=30/1' ! v4l2sink device=/dev/video1
== Schritt 2 ==
Hangout starten, sicherstellen dass man die richtigen Devices nimmt.
== Schritt 3 ==
Dann Video aus dem loopback lesen und (via PulseAudio) Audio von der Soundkarte aufnehmen:
gst-launch v4l2src device=/dev/video1 ! video/x-raw-yuv,framerate=30/1 ! \
queue ! videorate ! video/x-raw-yuv,framerate=20/1 ! \
timeoverlay halign=right valign=top shaded-background=true ! \
queue ! mux. \
pulsesrc device="alsa_input.usb-Creative_Technology_Ltd._VF0610_Live__Cam_Socialize_HD_100507_a_00851-02-HD.analog-mono" ! \
audio/x-raw-int,rate=22000,channels=1,width=16 ! queue ! \
audioconvert ! queue ! mux. avimux name=mux ! \
filesink location=rohvideo.avi
(Den device-parameter kriegt man aus "pactl list")
Das sind ca. 11 MiB pro Sekunde, macht also ca. 39 GiB für eine Stunde Aufnahme. In 'dstat -f' sehe ich, dass die USB-Festplatte ca. 16 MiB/s wegschreibt. Wenn ich mit dd schreibe, kriege ich ca. 27 MiB/s hin, das sollte also kein Problem darstellen.
== Schritt 4 ==
Introvideo von Felicitus in die passende Auflösung re-encodiert:
ffmpeg -i RZL_Intro_FullHD.mp4 -vf scale=800:448 -b:v 500k -r 20 rzl_fullhd_800x480.avi
ffmpeg -i rohvideo.avi -y -f mp4 -vcodec libx264 -crf 28 -threads 0 \
-flags +loop -cmp +chroma -deblockalpha -1 -deblockbeta -1 -refs 3 \
-bf 3 -coder 1 -me_method hex -me_range 18 -subq 7 -partitions \
+parti4x4+parti8x8+partp8x8+partb8x8 -g 320 -keyint_min 25 -level 41 \
-qmin 10 -qmax 51 -qcomp 0.7 -trellis 1 -sc_threshold 40 -i_qfactor \
0.71 -flags2 +mixed_refs+dct8x8+wpred+bpyramid -acodec libfaac -ab \
80k -ar 48000 -ac 2 -r 30 video.mp4
(ja, -r 30 ist absicht. ansonsten wird audio async später)
Enkodieren einer 27-minütigen Aufnahme (22 GiB) dauert auf meinem Thinkpad X200 (Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz) ca. 24 Minuten. Das Resultat ist 180 MiB groß.
Enkodieren einer 66-minütigen Aufnahme (55 GiB) dauert auf meinem Core i7 (Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz) ca. 27 Minuten. Das Resultat ist 1,1 GiB groß.
[[Category:Verein]]
[[Category:Öffentlichkeitsarbeit]]
[[Category:Jemand müsste mal]]