Re: [suse-multimedia] mencoder, ffmpeg und DVD-Standalone-Player
![](https://seccdn.libravatar.org/avatar/e4dd9160371e324d4fa49c105b89b175.jpg?s=120&d=mm&r=g)
Hallo nochmal, ich habe in der Zwischenzeit (durch Vergewaltigung des dd-Befehls meine Partitionstabelle geschreddert, dank halbwegs aktueller Backups sie jedoch wieder aufsetzen können sowie) nochmal etwas gegoogelt und probiert. Ich stieß dabei u.A. auf folgenden Link: http://gentoo-wiki.com/Index_Talk:HOWTO_Create_a_DVD Der Author dieses Beitrags verwendet mencoder, um aus avi-Files NTSC-DVDs zu erzeugen. Von dort hab ich mir den Videofilter harddup (man mencoder: "Only useful with MEncoder. If harddup is used when encoding, it will force duplicate frames to be encoded in the output. This uses slightly more space, but is necessary for output to MPEG files or if you plan to demux and remux the video stream after encoding. Should be placed at or near the end of the filter chain unless you have a good reason to do otherwise") sowie den -noskip-Schalter abgeguckt. Weiterhin hab ich einfach mal "blind" versucht, alle diese Optionen, die ffmpeg intern beim dvd-target setzt, auch dem mencoder auf den Weg mitzugeben. Aktuell lautet meine Befehlskette damit <cut> nice --15 /usr/bin/mencoder tv:// -tv driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:height=576:channel=E5:adevice=/dev/dsp1:immediatemode=0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=6000:vratetol=9000:aspect=4/3:keyint=132:acodec=ac3:abitrate=448:vrc_maxrate=9000:vrc_buf_size=1835 -oac lavc -vf crop=690:552,pp=lb,hqdn3d=4:3:6,scale=720:576,harddup -noskip -af lavcresample=48000:volume=8 -srate 48000 -endpos 00:04:00 -of mpeg -mpegopts format=dvd:init_vpts=500:init_apts=500:muxrate=10080 -o "/home/benni/untitled/Phoenix_`/bin/date +%a_%d.%b.%G_%H%M%S`.mpeg" </cut> damit nimmt er auf ohne Fehlermeldungen, und tcprobe zeigt exakt das gleiche, wie wenn ich hinterher nochmal ffmpeg mit dem dvd-target drüberlaufen lasse. Leistungsmäßig stößt damit die Kiste (ein Acer Travelmate 290, 1.5 GHz centrino, 512 MB Ram, 60er HDD + 160 extern) jedoch an ihre Grenzen, daher der nice-Level, ansonsten schafft er's nicht, in Echtzeit zu encoden. Ich werde das ganze morgen mal mit nem 30-min-Recording ausprobieren und vorher noch ein init 3 machen ... Den DVD-Player, um den es mir jedoch eigentlich ging, hab ich im Moment nicht zur Hand. Ich werde das nochmal Schritt für Schritt ausprobieren, wenn ich mal wieder zu Hause bin - danke, Maik, für Deine Tips und Anregungen - und dann ggf. nochmal posten, wenn's dann endgültig klappt oder eben auch nicht. Danke nochmals + viele Grüße Benni Am Samstag, 1. April 2006 10:16 schrieben Sie:
Hi,
0n 06/03/31@15:48 Benjamin Dombert told me:
Am Freitag, 31. März 2006 11:29 schrieb Maik Holtkamp:
0n 06/03/30@18:18 Benjamin Dombert told me:
Ich kenne mencoder/mplayer nur recht oberflaechlich.
ich nehme gelegentlich TV-Sendungen mit meiner Terratec Cinergy 400 TV mobile auf. Dazu nutze ich das Frontend kalva, welches - von mir etwas modifiziert, da standardmäßig nach mpeg4/DIVX konvertiert wird - Konsolenbefehle á la
<cut> echo "/usr/bin/mencoder tv:// -tv driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:h eigh t=576:channel=SE9:adevice=/dev/dsp1:immediatemode=0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=2600:vratetol=9000:aspect=1.31765:vhq:keyi nt=1 32:acodec=ac3:abitrate=160
2600 sind Schnitt, oder?
kA; man mplayer sagt dazu nur:
vbitrate=<value> Specify bitrate (pass 1/:2) (default: 800).
versuch es mal einfach wegzulassen. Der default von 800 ist IMHO fuer mpeg4 ok, aber bei 720x576 mpeg2 ist auch 2600 zu wenig.
Ich wuerde mehr nehmen.
Auch 160 kbit fuer den Sound sind bei ac3 (zumindest bei 5.1) sehr mager. 384 ist hier gebraechlicher.
OK, hier werde ich bei den nächsten Aufnahmen mal mit verschiedenen Werten experimentieren.
-oac lavc -vf crop=690:552,pp=lb,scale=720:576,hqdn3d=4:3:6 -of mpeg -mpegopts format=dvd -endpos 00:01:00 -o \"/home/benni/test/VOX_\`/bin/date +%a_%d.%b.%G_%H%M%S\`.avi\"" | at 17:41 31.03.2006 </cut>
Ich wuerde tippen es liegt an der sample Frequenz des Sound. Aus TV Karten bekommt man haeufig 32000 oder 44100. Auf dvd ist aber nur 48000 erlaubt.
ooops ... sorry, hier ist ein Tip-/Kopierfehler: Ich habe hier verschiedene Kalvas drauf und war an dieser Stelle beim abschicken etwas voreilig. Natürlich hab ich bei den genannten Problemfällen noch den Ausdruck
<cut> -af lavcresample=48000:volume=6 -srate 48000 </cut>
in der Filterkette mit drin. Den Ton frisst mein DV-444 ja auch bislang anstandslos...
Was sagt tcprobe -i <file> zum dem Teil das Probleme macht?
ich habe hier einen Streifen von sowohl vor als auch nach dem ffmpeg-Durchlauf. Bei der aufgenommenen Fassung sagt es:
[tcprobe] MPEG program stream (PS) [tcprobe] summary for ./Schnitt-Folge1-alt.mpeg, (*) = not default, 0 = not detected import frame size: -g 720x576 [720x576] aspect ratio: 4:3 (*) frame rate: -f 25.000 [25.000] frc=3 PTS=0.1800, frame_time=40 ms, bitrate=8000 kbps audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] PTS=0.1020, bitrate=128 kbps -D 1 --av_fine_ms 37 (frames & ms) [0] [0]
Nach dem re-encodieren durch ffmpeg:
tcprobe -i ./Schnitt-Folge1.mpeg [tcprobe] MPEG program stream (PS) [tcprobe] summary for ./Schnitt-Folge1.mpeg, (*) = not default, 0 = not detected import frame size: -g 720x576 [720x576] aspect ratio: 4:3 (*) frame rate: -f 25.000 [25.000] frc=3 PTS=0.5000, frame_time=40 ms, bitrate=9000 kbps audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x2000 [0x2000] PTS=0.5000, bitrate=448 kbps -D 0 --av_fine_ms 0 (frames & ms) [0] [0]
Sieht eigentlich beides gut und normgerecht aus. Da der Ton nur 2 kanalig ist, sollte auch die ac3 Bitrate passen.
Ich kenne ffmpeg nur vom lesen der transcode Liste und des transcode plugins fuer ffmpeg. Selber benutze ich fuer mpeg2 kodieren (von dv ab und an) aus alter Gewohnheit nur die mjpegtools.
Auch in transcode gibt es diesen Schalter --export-profile dvd-pal, der wenn mich nicht alles taeuscht [1]
außer den anderen Bitraten kann ich daraus keinen Unterschied erkennen ..:-(
BTW: Die Endung .avi ist recht ungewoehnlich fuer mpeg2.
<cut> ffmpeg -i /home/benni/test/filmblabla.mpeg -target dvd ./filmblabla-ffmpeg.mpg </cut>
Vielleicht reicht es das Orginal einfach neu zu muxen:
werde ich auch bei Gelegenheit mal testen. Schaden kann's ja jedenfalls nicht!
Glaube nicht mehr das das hilft :(.
mplayer -dumpfile video.m2v -dumpvideo <file> mplayer -dumpfile audio.ac3 -dumpaudio <file> mplex -f 8 -o film.mpg audio.ac3 video.m2v
Sollte zumindest das neu encodieren (=schlechtere Qualitaet) sparen.
Noch etwas: Ich habe mir mal die Quelldatei ffmpeg.c angeschaut: Wenn man es mit -target dvd aufruft, setzt es intern die folgenden Werte (Kommentare von den Entwicklern): <cut> opt_video_codec("mpeg2video"); opt_audio_codec("ac3"); opt_format("dvd");
opt_frame_size(norm ? "720x480" : "720x576"); opt_frame_rate(frame_rates[norm]); opt_gop_size(norm ? "18" : "15");
video_bit_rate = 6000000; video_rc_max_rate = 9000000; video_rc_min_rate = 0; //1500000; video_rc_buffer_size = 224*1024*8;
mux_packet_size= 2048; // from www.mpucoder.com: DVD sectors contain 2048 bytes of data, this is also the size of one pack. mux_rate = 10080000; // from mplex project: data_rate = 1260000. mux_rate = data_rate * 8
audio_bit_rate = 448000; audio_sample_rate = 48000; </cut>
[1] diese Einstellungen im ffmpeg aktiviert.
Ich weiss nicht wie es bei mencoder ist, aber transcode reagiert allergisch, wenn man ffmpeg bei Verwendung des dafuer vorgesehenen dvd profils noch weitere Optionen vorschreiben will.
Am haeufigsten macht sich das durch eine zu hohe peak-bitrate > 10 Mbit/sec bemerkbar[2]. Aeltere player bringt das dann aus dem Tritt. Ich wuerde einfach versuchen so wenig Optionen wie Moeglich anzugeben. Lass die einfach mal die Angaben zu vbitrate und vratetol weg. Das dvd profil setzt da ja schon von Haus aus vernuenftige Werte, wenn Du dann manuell dazwischen funkts, koennte das die Optionen fuer den Murks sein.
Wenn ich das mit dem ffmpeg source so richtig sehe, brauchst Du eigentlich kaum nocht was angeben. Auch die Audio sample rate wird "von Haus aus" entsprechend vordefiniert. Deine Filer (hqdn3d und pp=lb) sollten aber stehen bleiben, analog ist meist recht verrauscht und da kann sowas bitrate sparen helfen.
Alles andere schmeiss erstmal raus. Auch Deine aspect ratio ist so auf DVD nicht zulaessig, da es sich IMHO auch nicht wirklich um einen spruebaren Unterschied zu richtigem 4:3 (1.33) handelt, wuerde ich das auch rausschmeissen.
Videocodec, Audiocodec, Format, Frame size, norm müssten bei meinem mencoder-Aufruf ja damit übereinstimmen. Die Video-Bitrate erscheint mir nicht als des Problems Kern, da der Player die DVDs auch dann nimmt, wenn ich ffmpeg anweise, eine niedrigere Bitrate als die hier voreingestellte zu nehmen. Ton - wie gesagt - lief ohne Probleme. Mencoder kennt bei den -mpegopts noch die Optionen vrc_maxrate, vrc_minrate, vrc_buf_size (soll lt. man mencoder bei DVDs 1835 sein), muxrate (lt. man mencoder standardmäßig 1800 kb/s). Für die mux_packet_size kann ich bei mencoder keine Entsprechung finde. Würde es sich ggf. lohnen, mit diesen Optionen auch mal zu spielen?
Wie gesagt ich wuerde diese ganzen Optionen erstmal weglassen. ffmpeg hatte lange Zeit generelle Probleme mit einer zu hohen peak bitrate. Erst durch Einfuehrung des dvd-profils haben sie das in den Griff bekommen (jedenfalls habe ich lange nichts mehr von diesem Problem gehoert). Wenn man dann ausserhalb dieses Profils arbeitet, kann das das alte Verhalten wieder zu Tage foerdern.
Und dann kann man bei den -mpegopts (MPEG Muxer) nochmal vbitrate und vframerate einstellen. Muss ich das auch noch tun oder reicht es, wenn die Bitrate schon bei den lavcopts angegeben ist?
Der muxer muss AFAIK nur von der bitrate wissen, um einen buffer underrun zu vermeiden bei der framerate ist es wohl aehnlich.
Soweit ich die Werte im source interpretieren kann, sind das durchaus vernuenftige ddefaults und bei den Werten die boehmische Doerfer fuer mich sind, wuerde ich mich drauf verlassen, dass die ffmpeg Manschaft da schon was vernuenftiges eingetragen hat.
BTW: Ich weiss das ffmpeg schneller als die mjpeg tools ist, aber was ist das fuer ein Hirsch, mit dem Du das machst?
Auf einem 3000 Athlon(@2,4,32bit) bekomme ich hier mit den mjpegtools @720x576 so zwischen 12 und 18 frames/sec hin. Da mein DV-Quellmaterial recht sauber ist, verwende ich dabei keine gefraesigen Filter in der Kette.
[2] Es gibt IIRC auch irgendein tool, dass einem solche peaks anzeigt, habe nur leider grad eine Kiste, auf der nix multimediamaessiges installiert ist, vielleicht mpginfo aus mpgtx?
![](https://seccdn.libravatar.org/avatar/14d06c3f777cba4208d1710a431f4806.jpg?s=120&d=mm&r=g)
Hi, 0n 06/04/05@00:04 Benjamin Dombert told me: nur noch mal so zur Anregung.
Ich stieß dabei u.A. auf folgenden Link:
Das kannst du nicht vergleichen, der wandelt von einem file auf Platte in ein file auf Platte in mpeg2. Bei TV-Aufnahmen muss das aber 25 fps geschehen.
Der Author dieses Beitrags verwendet mencoder, um aus avi-Files NTSC-DVDs zu
avi ist hier nur container, drin steckt bei ihm quicktime. Ich tippe eher er macht solche Hexerei mit ...
erzeugen. Von dort hab ich mir den Videofilter harddup (man mencoder: "Only
... -harddup, um von der urspruenglichen frequenz seines quicktime videos auf die fuer eine ntsc-dvd ueblichen 29.97 fps zu kommen. Bei PAL heben wir (Gott sei Dank) nicht mit so kranken Geschichten zu kaempfen.
-noskip-Schalter abgeguckt. Weiterhin hab ich einfach mal "blind" versucht, alle diese Optionen, die ffmpeg intern beim dvd-target setzt, auch dem mencoder auf den Weg mitzugeben. Aktuell lautet meine Befehlskette damit
Ich gehe, wenn ich Probleme, habe meist eher den Weg etwas mehr wegzulassen, ist aber vielleicht Geschmackssache.
<cut> nice --15 /usr/bin/mencoder tv:// -tv driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:height=576:channel=E5:adevice=/dev/dsp1:immediatemode=0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=6000:vratetol=9000:aspect=4/3:keyint=132:acodec=ac3:abitrate=448:vrc_maxrate=9000:vrc_buf_size=1835 -oac lavc -vf crop=690:552,pp=lb,hqdn3d=4:3:6,scale=720:576,harddup -noskip -af lavcresample=48000:volume=8 -srate 48000 -endpos 00:04:00 -of mpeg -mpegopts format=dvd:init_vpts=500:init_apts=500:muxrate=10080 -o "/home/benni/untitled/Phoenix_`/bin/date +%a_%d.%b.%G_%H%M%S`.mpeg" </cut>
damit nimmt er auf ohne Fehlermeldungen, und tcprobe zeigt exakt das gleiche,
Das muss nichts heissen. Nach dem was tcprobe bei Deinem "kaputten" mpeg file schrieb, war das auch ok. Wenn Du also weiterhin Problme hast:
wie wenn ich hinterher nochmal ffmpeg mit dem dvd-target drüberlaufen lasse.
Leistungsmäßig stößt damit die Kiste (ein Acer Travelmate 290, 1.5 GHz centrino, 512 MB Ram, 60er HDD + 160 extern) jedoch an ihre Grenzen, daher der nice-Level, ansonsten schafft er's nicht, in Echtzeit zu encoden. Ich werde das ganze morgen mal mit nem 30-min-Recording ausprobieren und vorher noch ein init 3 machen ...
waere eine andere Alternative mit der Aufloesung runter zu gehen. Auch 352x576 ist z.B. eine gueltige PAL DVD Aufloesung (http://www.videohelp.com/dvd#tech) und sollte die CPU deutlich schonen. Auch kann man hier mit der bitrate (in etwa) entsprechend runter und bekommt so mehr auf die dvd ;). Fuer normale analoge TV Aufnahmen, die auf herkoemmlichen Roehren gespielt werden ist der Verlust IMHO zu verschmerzen. -- bye maik
![](https://seccdn.libravatar.org/avatar/e4dd9160371e324d4fa49c105b89b175.jpg?s=120&d=mm&r=g)
Hallo, über das Osterwochenende habe ich mich noch einmal mit dieser Thematik befasst. Es war ein hartes Geschäft. Kurz gesagt: Ich gebe auf! 1:0 für mencoder's mpeg-muxer!!! Es taten sich mit der Zeit viel mehr Baustellen auf, als ich beackern konnte. Ich musste feststellen, dass - sobald ich den mpeg-Muxer zuschalte, egal mit welchen Optionen (auch ganz ohne Zusatzangaben) - eine Reihe von Fehlern auftritt. Angefangen bei ständigen ERR: SCR: <blabla>, alternativ auch als warning, dann aber bis zu einigen tausend dieser Meldungen bei relativ kurzer Aufnahmezeit. Auch kann z.B. ProjectX die so erstellten mpeg2-Streams nicht wirklich verarbeiten, ständig gibt es "Error while decoding frame" aus und im Ergebnisfilm häufen sich die Aussetzer. Ich nehme also jetzt den (fast) Original-Befehls"cocktail" von kalva-0.8.50, um von TV nach mpeg4 im avi-Container aufzunehmen: <cut> echo "/usr/bin/mencoder tv:// -tv driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:height=576:channel=E11:adevice=/dev/dsp1:immediatemode=0 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4000:vratetol=9000:aspect=1.34095 -oac mp3lame -lameopts abr:br=128:mode=0 -vf crop=704:560:8:8,pp=lb,scale=720:576,hqdn3d=4:3:6,harddup -ffourcc DIVX -noskip -endpos 00:35:00 -o \"/home/benni/untitled/PRO 7_\`/bin/date +%a_%d. %b.%G_%H%M%S\`.avi\"" | at 19:12 20.04.2006 </cut> Es geht dann zwar die ganze Zeit der Laptop-Lüfter (logisch beim hqdn3d), aber es gibt keine relevanten Fehler und auch keine Aussetzer - zumindest hab ich bisher noch keine bemerkt. Dann mache ich meine ffmpeg-Übung: <cut> ffmpeg -i Aufnahme.avi -target dvd -<ggf weiter Optionen> -o Aufnahme_dvd-kompatibel.mpg </cut> Der daraus entstehende Streifen läuft einwandfrei auf meiner Stand-Alone-Kiste. Außerdem lässt er sich gar fein mit projectX schneiden, was man ja auch mal brauchen soll. Optional kommt dann also nochmal schneiden/demuxen mit ProjectX, neu muxen, dvdwizard ... Ist zwar nicht der Weg den ich mir vorgestellt hatte, aber es sind für mich bewährte Mittel um zum Ziel zu gelangen, bei denen man net allzu viel falsch machen kann, und ich weiß dass es hinterher auf jeden Fall geht. Ist auch mal was Wert ;-) Vielen Dank nochmal für die vielen guten Anregungen Benni Am Mittwoch, 5. April 2006 02:29 schrieb Maik Holtkamp:
Hi,
0n 06/04/05@00:04 Benjamin Dombert told me:
nur noch mal so zur Anregung.
Ich stieß dabei u.A. auf folgenden Link:
Das kannst du nicht vergleichen, der wandelt von einem file auf Platte in ein file auf Platte in mpeg2. Bei TV-Aufnahmen muss das aber 25 fps geschehen.
Der Author dieses Beitrags verwendet mencoder, um aus avi-Files NTSC-DVDs zu
avi ist hier nur container, drin steckt bei ihm quicktime. Ich tippe eher er macht solche Hexerei mit ...
erzeugen. Von dort hab ich mir den Videofilter harddup (man mencoder: "Only
... -harddup, um von der urspruenglichen frequenz seines quicktime videos auf die fuer eine ntsc-dvd ueblichen 29.97 fps zu kommen.
Bei PAL heben wir (Gott sei Dank) nicht mit so kranken Geschichten zu kaempfen.
-noskip-Schalter abgeguckt. Weiterhin hab ich einfach mal "blind" versucht, alle diese Optionen, die ffmpeg intern beim dvd-target setzt, auch dem mencoder auf den Weg mitzugeben. Aktuell lautet meine Befehlskette damit
Ich gehe, wenn ich Probleme, habe meist eher den Weg etwas mehr wegzulassen, ist aber vielleicht Geschmackssache.
<cut> nice --15 /usr/bin/mencoder tv:// -tv driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:heigh t=576:channel=E5:adevice=/dev/dsp1:immediatemode=0 -ovc lavc -lavcopts vcodec=mpeg2video:vbitrate=6000:vratetol=9000:aspect=4/3:keyint=132:acode c=ac3:abitrate=448:vrc_maxrate=9000:vrc_buf_size=1835 -oac lavc -vf crop=690:552,pp=lb,hqdn3d=4:3:6,scale=720:576,harddup -noskip -af lavcresample=48000:volume=8 -srate 48000 -endpos 00:04:00 -of mpeg -mpegopts format=dvd:init_vpts=500:init_apts=500:muxrate=10080 -o "/home/benni/untitled/Phoenix_`/bin/date +%a_%d.%b.%G_%H%M%S`.mpeg" </cut>
damit nimmt er auf ohne Fehlermeldungen, und tcprobe zeigt exakt das gleiche,
Das muss nichts heissen. Nach dem was tcprobe bei Deinem "kaputten" mpeg file schrieb, war das auch ok.
Wenn Du also weiterhin Problme hast:
wie wenn ich hinterher nochmal ffmpeg mit dem dvd-target drüberlaufen lasse.
Leistungsmäßig stößt damit die Kiste (ein Acer Travelmate 290, 1.5 GHz centrino, 512 MB Ram, 60er HDD + 160 extern) jedoch an ihre Grenzen, daher der nice-Level, ansonsten schafft er's nicht, in Echtzeit zu encoden. Ich werde das ganze morgen mal mit nem 30-min-Recording ausprobieren und vorher noch ein init 3 machen ...
waere eine andere Alternative mit der Aufloesung runter zu gehen.
Auch 352x576 ist z.B. eine gueltige PAL DVD Aufloesung (http://www.videohelp.com/dvd#tech) und sollte die CPU deutlich schonen.
Auch kann man hier mit der bitrate (in etwa) entsprechend runter und bekommt so mehr auf die dvd ;). Fuer normale analoge TV Aufnahmen, die auf herkoemmlichen Roehren gespielt werden ist der Verlust IMHO zu verschmerzen.
-- Bitte beachten Sie: In dieser Email vorhandene Rechtschreibfehler wurden absichtlich eingebaut und dienen der Belustigung des Empfängers
![](https://seccdn.libravatar.org/avatar/e4dd9160371e324d4fa49c105b89b175.jpg?s=120&d=mm&r=g)
Hallo Liste,
vor einiger Zeit habe ich mich hier auf der Liste gemeldet, um
herauszubekommen, wie man den mencoder aufrufen muss, damit er von meiner
analogen, v4l2-kompatiblen TV-Karte (Terratec Cinergy 400 TV mobile) eine
ordentliche Aufzeichnung macht, die ich anschließend ohne neu codieren zu
müssen (schneiden und) auf meinem DVD-Standalone-Player abspielen zu können.
Ich hatte damals insbesondere das Problem, dass die Aufzeichnung direkt nicht
auf dem Player wollte (obwohl tcprobe nur gutes meldete), nach einer
Neukodierung mittels
ffmpeg -i Aufnahme.mpg -target dvd ./Aufnahme-ffmpeg.mpg oder so ähnlich
jedoch hervorragend dort lief. Beim Troubleshooting taten sich immer neue
"Fronten" auf (vA sehr viele ERR: SCR ... Meldungen,
A/V-Synchronisationsprobleme), so dass ich dann irgendwann die Segel
gestrichen habe.
Nun habe ich die Einstellungen/Werte/Parameter gefunden, mit denen ich seit
einigen Wochen täglich eine Serie von 35 Minuten Länge aufnehme, anschließend
mit ProjectX die Werbung herausschneide und dann für jede Woche mit
qdvdauthor bzw. dvdwizard daraus eine DVD erstelle, welche auch anstandslos
auf meiner standalone-Kiste läuft. Ich möchte meinen mencoder-Aufruf hier
einmal posten und die Parameter erläutern, falls jemand von der Liste
ähnliches machen möchte und auch Probleme dahingehend hat:
<cut>
sudo nice --20 /usr/bin/mencoder tv://
#starte mencoder mit höchstmöglicher Priorität (um bei meinen sehr
ambitionierten Qualitätseinstellungen flüssige Aufnahmen zu gewährleisten.
Außerdem mache ich vorher noch ein "init 3". Sudo muss entsprechend
konfiguriert sein) und wähle als Eingangssignalquelle die TV-Karte
-tv
driver=v4l2:norm=PAL:device=/dev/video0:input=0:quality=0:width=720:height=576:channel=E11:adevice=/dev/dsp1:immediatemode=0
#lege die Optionen für die TV-Karte fest: Video4linux2-Treiber, PAL-Norm,
Aufnahme von /dev/video0 und input 0 (in meinem Fall: analoges TV). Ton liegt
an /dev/dsp1, welches beim Laden der TV-Kartenmodule erzeugt wird.
Immediatemode=0 gibt an, dass der Sound nicht über ein Kabel (über den
Line-in) in den Rechner kommt.
-oac lavc -ovc lavc
#verwende zum Kodieren von sowohl Ton als auch Bild die libavcodec
-lavcopts
vcodec=mpeg2video:vbitrate=4650:vratetol=15000:aspect=1.34095:acodec=ac3:abitrate=224:keyint=15
#nehme Bilder im mpeg2-codec mit einer Bitrate von zB 4650 kbit/s auf bei
einer Toleranz von 15000 kbit (Gesamtdatei). Als Audiocodec wird ac3 mit
einer Rate von 224 kbit/s verwendet. Alle 15 Bilder wird ein Keyframe
eingefügt (mit höheren Werten tauchten bei mir gehäuft ERR: SCR: [...] auf).
Das Seitenverhältnis der Aufnahme betrage 1.34095
-vf crop=704:560:8:8,pp=lb,scale=720:576,hqdn3d=4:3:6,harddup
#Die Videofilter. Ich nehme nur den inneren Teil des Bildes mit den
Abmessungen 704x560, um die verwischten/verwackelten Bildränder los zu
werden. Anschließend wird deinterlaced (linear blend - pp=lb), das Bild neu
skaliert (auf 720x576, eine PAL-konforme Größe) und mit dem hochqualitativen
Entrauscher (hqdn3d) nachbearbeitet. Nicht zu vergessen der harddup Filter.
Er bewirkt, dass aufeinanderfolgende, identische Bilder jeweils einzeln in
den Datenstrom eingebaut werden. Dieser Filter ist für das mpeg-Dateiformat
essentiell! Wird er vergessen, bekommt man haufenweise Probleme, z.B. ERR:
SCR: [...], oder dass Bild und Ton stark auseinanderlaufen.
-of mpeg
-mpegopts format=dvd:vaspect=4/3
#Verwende das mpeg Dateiformat (mpeg Multiplexer) für die Ausgabedatei
(Standard:AVI). Die Option sagt dem Muxer, dass er DVD-kompatibel arbeiten
und dabei ein Seitenverhältnis von 4/3 verwenden soll.
-af lavcresample=48000:volnorm
-srate 48000
#hier wird der Ton nachbearbeitet. Er kommt von der TV-Karte mit einer
unpassenden Samplingrate und viel zu leise. Es wird daher die Lautstärke
normalisiert und mit Hilfe der libavcodec auf DVD-kompatible 48 kHz
geresampelt. Die Angabe hinter -srate legt die Samplingrate des
Ausgangsdatenstromes fest.
-noskip
#besagt, dass keine Bilder übersprungen werden sollen.
-endpos 00:00:01
-o "/home/benni/untitled/PRO7_`/bin/date +%a_%d.%b.%G_%H%M%S`.mpg"
#Mit Endpos wird die Aufnahmezeit angegeben, und mit -o der Dateiname und
Speicherort für die Aufnahme.
Das ganze funktioniert auf meinem Acer Travelmate 290 (1,5 GHz Centrino, 512
MB RAM) für Aufnahmen von bis zu 40 Minuten, wenn wirklich alle Resourcen für
die Kodierung verwendet werden können - daher der Start mit Nice-Level -20
und das vorherige init 3. Bei längeren Aufnahmezeiten oder langsamerem
Rechner muss man das System entsprechend entlasten (niedrigere
Qualitätseinstellungen vornehmen), es kommt ansonsten zu Pufferüberläufen und
damit einhergehenden Frame-Drops mitsamt aller Probleme.
Nach der Aufnahme starte ich ProjectX, schneide die Werbung heraus und lasse
den Stream demuxen. Dann noch ein
mplex -f 8 PRO7_
participants (2)
-
Benjamin Dombert
-
Maik Holtkamp