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: Unterschied zwischen den Versionen

(Testen & Debuggen)
(neues jahr - neues glueck)
 
(16 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Hardware =
 
= Hardware =
 +
== 2009 ==
 
Eine Uebersicht von dem, was z.Zt. bei mir im Zimmer fuers Videoschneiden fuer den Javakurs 2009 werkelt.
 
Eine Uebersicht von dem, was z.Zt. bei mir im Zimmer fuers Videoschneiden fuer den Javakurs 2009 werkelt.
== boxen ==
+
=== boxen ===
 
* PC_1 mit 120 GB zum Schneiden/filehosting
 
* PC_1 mit 120 GB zum Schneiden/filehosting
 
* PC_2 als encodiermaschine I
 
* PC_2 als encodiermaschine I
* PC_3 als audio-encoder
 
 
* Notebook_1 als encodiermaschine II / avi2flv-encoder
 
* Notebook_1 als encodiermaschine II / avi2flv-encoder
* Notebook_2 als filehoster
+
* <del>Notebook_2 als filehoster</del>
  
== HDDs ==
+
=== HDDs ===
* 80 GB zum Auslagern
+
* S/N.:''54'' 80 GB zum Auslagern
* 80 GB fuer roh-daten von LE01
+
* S/N.:''0000'' 80 GB fuer roh-daten von LE01
* 80 GB fuer roh-daten von LE02
+
* S/N.:''0000'' 80 GB fuer roh-daten von LE02
* 80 GB fuer experiemente/tests
+
* S/N.:''51'' 80 GB fuer experiemente/tests
* 500 GB als zwischenspeicher fuer die verlustfreien Videos
+
* 40GB fuer roh?? Daten von LE01
 +
* <del> 500 GB als zwischenspeicher fuer die verlustfreien Videos </del>
  
== Zeit ==
+
=== Zeit ===
 
* 1. Von der Kamera auf den PC: (echtzeit) 50min
 
* 1. Von der Kamera auf den PC: (echtzeit) 50min
 
** 1b. Screencasts umwandeln:              2h
 
** 1b. Screencasts umwandeln:              2h
 
* 2. zusammenschnippeln                    5h
 
* 2. zusammenschnippeln                    5h
 
* 3. Audio-encodieren                      ?h
 
* 3. Audio-encodieren                      ?h
* 4. Video-encodieren                    20h? 50h?
+
* 4. Video rendern                        35h? 50h? 80h?
 +
** 4b. Video-encodieren                    5h
 
* 5. avi2flv                              4h
 
* 5. avi2flv                              4h
 
* 6. avi2mkv(h.264)                        4h
 
* 6. avi2mkv(h.264)                        4h
Zeile 26: Zeile 28:
 
=== Testen & Debuggen ===
 
=== Testen & Debuggen ===
 
* Videoschnittprogramme 20h
 
* Videoschnittprogramme 20h
* Encoding              76h
+
* 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
 +
* <del> 3. Audio-encodieren                      10min</del>
 +
* 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 ===
 +
* [http://kinodv.org/ dvgrab] consolentool zum (live-)"grabben" von einer DV-Cam:
 +
dvgrab -i -f dv2 <fileName>
 +
 
 +
* [http://kinodv.org/ Kino] das ganze mit GUI und Vorschaufenster
 +
 
 +
=== ScreenCapturing ===
 +
* [http://recordmydesktop.sourceforge.net recordMyDesktop] zum ScreenCapturing unter Linux
 +
recordmydesktop --no-sound --no-cursor -workdir <tmp-dir>/ --fps 25 -v_quality 55 --on-the-fly-encoding -o <fileName>.ogv
 +
* [http://xvidcap.sourceforge.net/ 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 ==
 +
* [http://www.kdenlive.org/ 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!
 +
 
 +
<pre>
 +
#!/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"
 +
 
 +
</pre>
 +
ggf. die Anzahl der threads veraendern :)
 +
 
 +
== Hier sind ein paar Tools, die ich dann naechstes Jahr ausprobiere: ==
 +
* [http://www.flumotion.net/ flumotion] Java - Audio/Video-Streamserver
  
 
= Tipps am rande =
 
= Tipps am rande =
Zeile 32: Zeile 121:
 
** Firewire-Netzwerk scheint nach langzeit-test nicht Stabil...
 
** Firewire-Netzwerk scheint nach langzeit-test nicht Stabil...
 
** ==> Nutzt K E I N Firewire, falls ihr ueber Netzwerk Dateien einbindet
 
** ==> Nutzt K E I N Firewire, falls ihr ueber Netzwerk Dateien einbindet
* Es gibt auch Bugs in Programmen die keinen BugTracker/Changelog fuehren!
+
 
** ==> neuste Versionen lohnen sich
+
* 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)
 
* 1min ~ 1GB (verlustfrei)
 
* Festplatten sind die eine Sache, schnelle externe Gehaeuse die andere..
 
* Festplatten sind die eine Sache, schnelle externe Gehaeuse die andere..
Zeile 39: Zeile 133:
 
** D.h. auf 50min bis zu 1min Abweichung
 
** D.h. auf 50min bis zu 1min Abweichung
 
** ==> Am besten alles auf einem Geraet aufnehmen als ein video (freej?)
 
** ==> 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...

Aktuelle Version vom 22. März 2011, 09:45 Uhr

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...