Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Benutzer:Tkroenert/Videoschnitterfahrung

Hardware

2009

Eine Uebersicht von dem, was z.Zt. bei mir im Zimmer fuers Videoschneiden fuer den Javakurs 2009 werkelt.

boxen

  • PC_1 mit 120 GB zum Schneiden/filehosting
  • PC_2 als encodiermaschine I
  • Notebook_1 als encodiermaschine II / avi2flv-encoder
  • Notebook_2 als filehoster

HDDs

  • S/N.:54 80 GB zum Auslagern
  • S/N.:0000 80 GB fuer roh-daten von LE01
  • S/N.:0000 80 GB fuer roh-daten von LE02
  • S/N.:51 80 GB fuer experiemente/tests
  • 40GB fuer roh?? Daten von LE01
  • 500 GB als zwischenspeicher fuer die verlustfreien Videos

Zeit

  • 1. Von der Kamera auf den PC: (echtzeit) 50min
    • 1b. Screencasts umwandeln: 2h
  • 2. zusammenschnippeln 5h
  • 3. Audio-encodieren  ?h
  • 4. Video rendern 35h? 50h? 80h?
    • 4b. Video-encodieren 5h
  • 5. avi2flv 4h
  • 6. avi2mkv(h.264) 4h

Testen & Debuggen

  • Videoschnittprogramme 20h
  • Encoding 114h

2010

Eine Uebersicht von dem, was fuers Videoschneiden fuer den Javakurs 2010 werkelte:

boxen

  • PC_1 (x2 250,2GB ram *gaehn*) zum Schneiden/filehosting/encodiermaschine I
  • Notebook_1 mit Gentoo(beste ffmpeg-pakete) fuer avi2flv-encoder, screencast umwandeln

HDDs

  • S/N.:0000' 80 GB fuers OS + endprodukt (flv,mkv)
  • S/N.:0000 80 GB fuer roh-daten von LE01,LE02,LE03
  • S/N.:0000 80 GB fuer roh-daten von LE04,LE05,LE06
  • S/N.:0000 80 GB fuer ausgabe der roh-videos aus dem Schnittprogramm (je 14GB)
  • 40GB auf dem Notebook als zwischenspeicher fuers flv-erstellen...


Zeit

  • 1. Von der Kamera auf den PC: (echtzeit) 50min
    • 1b. Screencasts umwandeln: 1h
  • 2. zusammenschnippeln 2h
  • 3. Audio-encodieren 10min
  • 4. Video rendern 15h
  • 5. avi2flv 3h
  • 6. avi2IPOD 20min (auf der graka)
  • 7. avi2mkv  ??h

Testen & Debuggen

  • Videoschnittprogramme 5h
  • Encoding (numbercrunch) 25h

Software

Folgende Tools habe ich benutzt bzw. halte ich sinnvoll (stand Anfang 2009).

Aufnahme

DV (Firewire) aufnehmen

  • dvgrab consolentool zum (live-)"grabben" von einer DV-Cam:
dvgrab -i -f dv2 <fileName>
  • Kino das ganze mit GUI und Vorschaufenster

ScreenCapturing

recordmydesktop --no-sound --no-cursor -workdir <tmp-dir>/ --fps 25 -v_quality 55 --on-the-fly-encoding -o <fileName>.ogv
  • XvidCap ein weiteres Tool auf FFMPEG basis. (! von 2006)
xvidcap --fps 25 --continue yes --cap_geometry 1024x768 --source x11 --gui no --auto --quality 80 --codec mpeg4 --format avi --file <fileName>.avi
  • Convertieren von ogv zu avi (vom recordmydesktop-tool zum schnittprogramm wie kdenlive)
tkroenert@notebook ~/temp $ cat ogv2avi.sh
ffmpeg -i LE$i.ogv -an -threads 2 -sameq LE$i.ogv.2.avi
  • Convertieren der Audiospur
time ffmpeg -i jk11-5.ogv -ar 44200 -threads 2 -sameq jk11-5.wav

Schneiden

  • KdeNLive _nur_ qt4! (qt3 wird nichtmehr support => alle meine Bugs wurden wg. "used qt3" geclosed^^)

Encodieren / Convertieren

  • FFMPEG & MEncoder (non-plus-ultra!) zwar consolentool, aber es gibt genuegend Beispiele im Netz
  • AviDeMux mit schoener Gui und pre-sets (mit den eingebauten Filtern ist es sogut wie AviSync)

Nach flv-convertieren 2008/2009

mencoder -forceidx -of lavf -oac mp3lame -lameopts abr:br=56:mode=3 -af volnorm=1 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=320:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=768:384,harddup -o eigeneAufnahmeH20b4.avi.MKV.flv eigeneAufnahmeH20b4.avi.MKV

Nach mp4-convertieren (mit flashplayer abspielbar) 2010

Dieses Script fliegt so an einigen Orten im Internet rum! Daher kann ich keine quelle nennen. Zunaechst der Hinweis: qt-faststart _indexiert_ das video, so dass (sofern der webserver es unterstuetzt!!) vorgespult werden kann!

#!/bin/sh

infile="input.file.ogv.or.mkv.or.mp4.or....avi"
tmpfile="video_tmp.mp4"
outfile="video_out.mp4"
options="-vcodec libx264 -b 512k -flags +loop+mv4 -cmp 256 \
           -partitions +parti4x4+parti8x8+partp4x4+partp8x8+partb8x8 \
           -me_method hex -subq 7 -trellis 1 -refs 5 -bf 3 \
           -flags2 +bpyramid+wpred+mixed_refs+dct8x8 -coder 1 -me_range 16 \
           -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qmin 10\
           -qmax 51 -qdiff 4"

ffmpeg -y -i "$infile" -an -pass 1 -threads 2 $options "$tmpfile"

ffmpeg -y -i "$infile" -acodec libfaac -ar 44100 -ab 96k -pass 2 -threads 2 $options "$tmpfile"

qt-faststart "$tmpfile" "$outfile"

ggf. die Anzahl der threads veraendern :)

Hier sind ein paar Tools, die ich dann naechstes Jahr ausprobiere:

Tipps am rande

  • 25% einer 400MBit/s Firewire Verbindung sind mehr als 50% einer 100MBit/s Verbindung
    • Firewire-Netzwerk scheint nach langzeit-test nicht Stabil...
    • ==> Nutzt K E I N Firewire, falls ihr ueber Netzwerk Dateien einbindet
  • Bugs in Programmen
    • Es gibt auch Bugs in Programmen die keinen BugTracker/Changelog fuehren!
      • ==> neuste Versionen lohnen sich
    • Es gibt Bugs die nur auf bestimmten Architekturen/Betriebssystemen auftreten
      • ==> Neuer Rechner, neues Glueck!
  • 1min ~ 1GB (verlustfrei)
  • Festplatten sind die eine Sache, schnelle externe Gehaeuse die andere..
  • Amateur-Video/Audio-Geraeten haben eine Toleranz von ~2%.
    • D.h. auf 50min bis zu 1min Abweichung
    • ==> Am besten alles auf einem Geraet aufnehmen als ein video (freej?)
  • Programme m u e s s e n keine Fehlermeldungen generieren
    • => wenn ploetzlich 120kb auf Temp frei sind, war/ist Temp zu klein!
  • Bei Parameter-Beispielen aus dem Netz auf das Jahr achten... manche Tools gibts schon sehr lange...