Hi, 0n 04/04/30@08:38 Wolfgang Zenner told me:
ich habe mir jetzt ein kleines Script erstellt, mit dem ich zuerst aufnehmen und dann bearbeiten kann. xine meint zwar, dass es DVD wäre, aber da mein DVD-Player defekt ist, kann ich das nicht verifizieren: Aufnahme: transcode -V -H0 -p /dev/dsp -i /dev/video0 -x v4l='--import_v4l 1' -y mpeg,yuv4mpeg -o $1_video -g 384x288 -u 100 -m $1_audio.mpa -f 25 -e 48000,16,2
-y mpeg ist bbmpeg, das ist weder schnell noch qualitativ gut. Was ich meinte ist in etwas das tvrec.sh macht: Hier wuerde ich -y yuv4mpeg,null nehmen, wenn Du Platz hast. Den Ton machst Du ueber -p und -m also hat er bei -y nichts verloren. Ich wuerde -E nehmen -e ist fuer den Eingang und meist automatisch erkannt. AFAIK liefert v4l 32000. Paramenter sind gleich.
Bearbeitung: transcode -V -i $1_video.m1v -x mpeg2,null -y mpeg,null -F mpeg -J yuvdenoise=deinterlace=0,dnr -o $1_denoised -u 100 -f 25 -g 384x288 echo "RetCode deinterlace = " $? > denoise_encode.log
Das kannst Du wie in tvrec.sh nicen, dann stoert es nicht so: nice -19 transcode .. -x yuv4mpeg,null -y yuv4mpeg,null und die Filter. Klatsch hier ruhig alles rein, was Du an Filtern haben willst. BTW: Transcode ist hier sehr tollerant. Denn Du schickst ihm mpeg1 (m1v - produziert von -y mpeg) und sagst ihm es soll es im import als mpeg2 behandeln. Raus kommt hier bei Dir wieder mpeg1.
# transcode -V -i $1_denoised.m1v -x mpeg2 -y mpeg -F mpeg -o $1 -p $1_audio.mpa -w 3000 -e 48000,16,2 -R 1 -u 100 -f 25 -g 384x288 --divx_quant 2,10 # echo "RetCode encode(1) = " $? >> denoise_encode.log # transcode -V -i $1_denoised.m1v -x mpeg2 -y mpeg -F mpeg -o $1 -p $1_audio.mpa -w 3000 -e 48000,16,2 -R 2 -u 100 -f 25 -g 384x288 --divx_quant 2,10 # echo "RetCode encode(2) = " $? >> denoise_encode.log transcode -V -i $1_denoised.m1v -x mpeg2 -y mpeg -F mpeg -o $1 -p $1_audio.mpa -w 3000 -e 48000,16,2 -R 0 -u 100 -f 25 -g 384x288 --divx_quant 2,10 echo "RetCode encode(0) = " $? >> denoise_encode.log
Das hst Du falsch verstanden. Das -R 1/2 wird in tvrec.sh benutzt, da nach divx (mpeg4) encodet wird. Das macht man bei mpeg4, um die Filegroesse moeglichst passend zu bekommen. Wenn man auf CD's brennt ist es sehr aergerlich, wenn das Ergebnis dann gard 10 MB groesser als der Rohling ist (bei DVD auch, aber die Spanne ist halt groesser). Ich tippe mal Du kannst Dir jetzt vorstellen, wie wichtig bei mpeg1/2 der Parameter divx_quant ist ;). -w lass auch weg. -f und -g sollte transcode automatisch erkennen. Du macht hier nur was am Bild, den Ton hier mit in den import zu schieben macht also auch wenig Sinn. Dein eigentliches Zielformat sollte mpeg2 sein. Ich wuerde hier die mjpegtools benutzen und die kennen eh' kein 2 pass encoding.
mplex -V -f 8 -S 4400 -o $1.mpg $1.m1v $1.mpa echo "RetCode mplex = " $? >> denoise_encode.log rm -r $1 dvdauthor -o $1 $1.mpg echo "RetCode dvdauthor = " $? >> denoise_encode.log dvdauthor -o $1 -T echo "RetCode dvdauthor = " $? >> denoise_encode.log
Da er bei "R 1" und "R 2" das gleiche tut, habe ich dann einen Durchgang mit "R 0" gemacht.
Siehe oben.
Ich fürchte einfach, dass ich irgendwo auf 720x576 hochskalieren muss...
Nein. Das xine das spielt und mplex das muxt ist aber mehr oder weniger Glueck ;). 384x288 ist zufaellig die einzige Aufloesung, die auf dvd in mpeg1 und mpeg2 erlaubt ist und Du hast da mpeg1 erstellt. Dein Ton ist immer noch PCM, aber auch das ist auf DVD erlaubt. Schwein gehabt :). Schau Dir einfach mal an, was tcprobe -i DeinErgebnis sagt. Das hochskalieren macht Dein TV, immer, und zwar auf seine Aufloesung. Obwohl Du was legales erstellt hast, wuerde ich das so nicht machen. Mpeg1 will man nicht auf DVD. Fuer PCM sound gilt IMHO das gleiche. Wenn es vielleicht auch sonst nichts ausmacht so verbraucht es doch (bei gegebener Qualitaet) unnoetig Platz. Darueber hinaus musst Du damit rechnen, dass es eine Reihe Hardwareplayer gibt, die nicht wissen, dass mpeg1 auf einer DVD legal ist und da nicht mitspielen. Daher wuerde ich den letzten transcode Aufruf (das eigentliche umcodieren) in etwa so machen: transcode -i film -p audio -x yuv4mpeg -E 48000,16,2 -V -o dvdfilm\ -y mpeg2enc,mp2enc -F 8,"-b 8000 -K kvcd -g 6" Wie gesagt bin ich nicht sicher beim -V. Das was oben in "" steht findest Du in man mpeg2enc. Das Umkodieren kannst Du natuerlich auch nicen, damit es Deine anderen Anwendungen nicht behindert. Der einzig kritische Schritt bei dem ganzen Vorgang ist das Aufnehmen, da muss Deine Kiste hinter die gelieferten 25fps, die die Karte liefert, hinterher, ohne zuviel Frames zu verlieren. Daher waehlst Du dort yuv4mpeg. Dieser codec schohnt den Prozessor (dafuer brauchst Du fuer diesen Schritt Plattenplatz). Wenn Deine Kiste das hergibt (min. 2,8 GHz habe ich mal gehoert), kannst Du auch versuchen direkt beim Aufnehmen das Zeug nach mpeg2 zu codieren. Dann ist mpeg2enc aber nicht erste Wahl, da es eher fuer Qualtitaet denn fuer speed bekannt ist. Probier in diesem Fall -y ffmpeg -F mpeg2. Sei aber vorsichtig mit der max. bitrate. Ueber 6000 wuerde ich bei ffmeg nicht gehen, denn es ist bekannt fuer seine Ausreisser nach oben und dann bist Du flugs ueber den 9800, die fuer DVD erlaubt sind. Andererseits sollten bei 384x288 vielleicht auch schon 4000 fuer eine Topqualitaet reichen. Ein ganz schickes Mittelding ist auch 384x576. Wenn das dann < 700 MB wird, kannst Du den Ton in 44100 dazupacken und auf eine CD brennen - nennt sich cvd und spielen fast alle Hardwareboxen (zumindest die aus *c*hina;)). Die erlaubte Bitrate ist hier die gleiche wie bei svcd, aber die meisten guenstig Player haben auch kein Problem, wenn man ein paar Kbit/sec mehr verwendet. Leider hat weder mpeg2enc noch ffmpeg ein Profil dafuer (-F). Aber bei mpeg2enc kannst Du -F 5 (xsvcd) verwenden. Ich wuerde in jedem Fall immer jeden Schritt einzeln machen und die Zwischenergebnisse anschauen. Es reichen ja ein paar Minuten um einen Eindruck zu bekommen. Ich weiss, ist 'ne Menge Stoff, aber wenn Dein script einmal steht kannst Du es ja wieder vergessen. HTH, happy testing & viel Glueck ;). -- bye maik