Frage von Joern Bredereck:Hallo,
ich habe ein paar Realvideo-Dateien (;RV40-Codec [1]), die ich gerne in
mpeg2 wandeln möchte, damit ich sie über den vlc an einen
streamingclient streamen kann.
Normalerweise benutze ich (;unter Linux) eine Script-Sammlung namens
"video-to-dvd". Dieses Script verwendet den Mplayer um die Quelldatei zu
demuxen und dann wieder als mpeg2/mp2 zu encoden und mit mplex zu muxen.
Bei allen gängigen DivX-Varianten klappt das auch hervorragend, aber bei
Realvideo erhalte ich immer unsynchrone mpeg2-files, bei denen Ton und
Video auseinanderlaufen. Es sieht fast so aus, als wenn der Realcodec
keine konstante Samplingrate oder keine konstante FPS-Rate benutzen
würde.
Kennt jemand von euch eine Lösung, um zuverlässig Realvideo-Material
nach mpeg zu recodieren? Eine Linux-Lösung würde ich natürlich
bevorzugen, aber zur Not boote ich auch mal Windows, falls es dort eine
passende Software gibt.
Bin für jeden Tipp dankbar!
[1] Mplayer-Output der betreffenden Realvideo-datei:
REAL file format detected.
Stream description: Audio Stream
Stream mimetype: audio/x-pn-realaudio
Stream description: Video Stream
Stream mimetype: video/x-pn-realvideo
Stream mimetype: logical-fileinfo
VIDEO: [RV40] 512x352 24bpp 24.000 fps 0.0 kbps (; 0.0 kbyte/s)
Clip info:
name:
author:
copyright:
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
AUDIO: 44100 Hz, 2 ch, s16le, 64.1 kbit/4.54% (;ratio: 8010->176400)
Selected audio codec: [ffcook] afm: ffmpeg (;FFmpeg COOK audio decoder)
==========================================================================
==========================================================================
Opening video decoder: [realvid] RealVideo decoder
opening shared obj '/usr/lib/win32/drvc.so'
Selected video codec: [rv3040] vfm: realvid (;Linux RealPlayer 10 RV30/40
decoder
)
==========================================================================
Building audio filter chain for 44100Hz/2ch/s16le -> 0Hz/0ch/??...
alsa-init: 1 soundcard found, using: default
alsa: 44100 Hz/2 channels/4 bpf/60208 bytes buffer/Signed 16 bit Little
Endian
AO: [alsa] 44100Hz 2ch s16le (;2 bytes per sample)
Building audio filter chain for 44100Hz/2ch/s16le ->
44100Hz/2ch/s16le...
Starting playback...
VDec: vo config request - 512 x 352 (;preferred colorspace: Planar I420)
VDec: using Planar I420 as output csp (;no 0)
Movie-Aspect is 1.45:1 - prescaling to correct movie aspect.
VO: [xv] 512x352 => 512x352 Planar I420
alsa-uninit: pcm closed 0.018 ct: 0.022 85/ 85 23% 2% 1.4% 1 0
--
Gruß,
Jörn
Antwort von Wolfgang Hauser:
Joern Bredereck schrieb:
>Kennt jemand von euch eine Lösung, um zuverlässig Realvideo-Material
>nach mpeg zu recodieren?
Das könnte mit Totalconverter (;Windows) gehen.
Antwort von Joern Bredereck:
Hallo Marcus,
Marcus Jodorf
wrote:
> > Kennt jemand von euch eine Lösung, um zuverlässig Realvideo-Material nach
> > mpeg zu recodieren?
>
> Konkret mit Realvideo habe ich es zwar noch nicht probiert, aber das
> Problem mit der nicht konstanten fps rate, bzw. daß mplayer von den
> Codecs selber keine hinreichend exakten Informationen bekommt, findet
> man auch bei anderen Formaten bzw. Codecs.
>
> Falls es wirklich nur daran liegt und nicht noch an eventuellen anderen
> Besonderheiten von Realvideo, reicht wahrscheinlich eine explizite
> Angabe der fps rate à la
> mplayer -fps 24000/1001 blah.video
> mencoder -ofps 24000/1001 blah.video
danke für den Tipp. Eigentlich hatte ich es mit einer festen Framerate
schonmal versucht, aber ich versuche es gerne nochmal.
--
Gruß,
Jörn
Antwort von Roland Steinbach:
Joern Bredereck wrote:
> Bei allen gängigen DivX-Varianten klappt das auch hervorragend, aber bei
> Realvideo erhalte ich immer unsynchrone mpeg2-files, bei denen Ton und
> Video auseinanderlaufen. Es sieht fast so aus, als wenn der Realcodec
> keine konstante Samplingrate oder keine konstante FPS-Rate benutzen
> würde.
Das kann sein, Real unterstützt das.
Antwort von Joern Bredereck:
Roland Steinbach wrote:
> > Bei allen gängigen DivX-Varianten klappt das auch hervorragend, aber bei
> > Realvideo erhalte ich immer unsynchrone mpeg2-files, bei denen Ton und
> > Video auseinanderlaufen. Es sieht fast so aus, als wenn der Realcodec
> > keine konstante Samplingrate oder keine konstante FPS-Rate benutzen
> > würde.
>
> Das kann sein, Real unterstützt das.
und gibts einen Converter der damit klarkommt und nicht einfach nur die
ersten paar Frames samplet und dann stur mit einer konstanten FPS-Rate
re-encoded?
--
Gruß,
Jörn
Antwort von Joern Bredereck:
Marcus Jodorf wrote:
> >> Das kann sein, Real unterstützt das.
> >
> > und gibts einen Converter der damit klarkommt und nicht einfach nur
> > die ersten paar Frames samplet und dann stur mit einer konstanten
> > FPS-Rate re-encoded?
>
> Wie soll das gehen, bei einem hier verlangten Zielformat mit konstanter
> Framerate?
eine variable Framerate lässt sich ja wohl in eine konstante Framerate
konvertieren.
> Soll der Encoder die überzähligen Frames vielleicht mit schwarzen
> Frames füllen, fall das Quellformat mit der Framerate darunterliegt? ;-)
Wenn ein Codec mit variable Framerate auf neue Frames verzichtet, dann
kann das nur daran liegen, dass sich in einem gewissen Zeitraum im Bild
nichts bewegt. Hier wäre es dann bei der Convertierung in eine statische
Framerate kein Problem aufeinanderfolgende Frames zu duplizieren.
> Bei entsprechendem Zielformat wäre das machbar, aber bei einem Ziel mit
> konstanter Frameraten bleibt auch nur die Umsetzung auf eine feste
> Framerate.
richtig. Und meine Frage war, mit welcher Software eben dies
funktioniert; und zwar unter Anpassung von Bild UND Ton, damit diese
Synchron bleiben. Das dvd-to-video-Script, welches ich hierfür verwenden
wollte scheint damit jedenfalls überfordert zu sein.
Ich habe aber inzwischen mit "Super" (;http://www.erightsoft.com/SUPER.html)
ein entsprechende Tool gefunden, mit dem sich Videomaterial mit
variablen Bitraten ohne Sync-Probleme konvertieren lassen. Nur schade,
daß es sich dabei um eine Windows-Software handelt; ne Linux-Lösung wäre
mir natürlich lieber gewesen.
> Wie der eigentliche Videocodec das dann umsetzt, ist verschieden und ist
> doch auch vollkommen latte und interessiert nur aus rein technischer Sicht
> - ob der nun ein eine Sekunde lang stehendes Bild als einen 1 Sekunde
> stehenzulassenden Frame ablegt oder z.B. 25 identischen Frames aufreiht,
> oder was in Richtung B-frames bastelt oder sonstwas... je nach Format
> und Codec halt gibt es alle möglichen Variationen und Strategien.
sehr richtig. Warum dann deine Bedenken in deinem ersten Abschnitt?
--
Gruß,
Jörn
Antwort von Joern Bredereck:
Marcus Jodorf wrote:
> >> > und gibts einen Converter der damit klarkommt und nicht einfach nur
> >> > die ersten paar Frames samplet und dann stur mit einer konstanten
> >> > FPS-Rate re-encoded?
> >>
> >> Wie soll das gehen, bei einem hier verlangten Zielformat mit konstanter
> >> Framerate?
> >
> > eine variable Framerate lässt sich ja wohl in eine konstante Framerate
> > konvertieren.
>
> Sicher.
eben. Und danach hatte ich gefragt. Denn das Script mit dem ich es
versucht hatte, scheint sich nur an der FPS-Angabe von mplayer zu
orientieren und dann stur nach der vermeintlichen festen Framerate zu
demuxen anstatt die variable Framerate zu berücksichtigen.
> Genau das passiert ja normalerweise. Macht z.B. der von mir
> vorgeschlagene mencoder mit -ofps.
> Von daher verstehe ich jetzt einfach nicht, warum Du quasi nach einer
> ?besseren? Lösung fragst, wenn das doch technisch die sinnvolle
> Vorgehensweise ist.
da hattest du mich dann mißverstanden. Ich hatte nicht nach einer
besseren Lösung gefragt, sondern eigentlich nach genau dieser.
Ich habe jetzt leider keinen Zugriff auf dieses Script, aber habe es so
in Erinnerung, dass mplayer zum demuxen zum Einsatz kommt und dass dann
über eine Pipe das demuxte Material an ffmpeg und mp2encode übergeben
wird, um es dann in einem zweiten Schritt mit mplex in einen
mpeg2-Container zu muxen. Und hierbei bleibt die Berücksichtigung der
variablen Framerate anscheinend auf der Strecke.
> > richtig. Und meine Frage war, mit welcher Software eben dies
> > funktioniert; und zwar unter Anpassung von Bild UND Ton, damit
> > diese Synchron bleiben. Das dvd-to-video-Script, welches ich
> > hierfür verwenden wollte scheint damit jedenfalls überfordert zu
> > sein.
>
> Dein Skript benutzt offenbar mencoder und deckt dabei nicht alle
> Eventualitäten ab. Wenn, dann liegt es nur am Skript.
yep, das mag sein.
> mencoder selber kann mit sowas umgehen, wenn Du ihm, wie bereits
> beschrieben, die zum passende nominale Framerate fürs Quellmaterial
> mitgibst (;davon ist unbenommen, daß Du evtl. noch die Framerate auf
> der Ausgangsseite modifizierst).
Was ist denn unter einer "nominalen Framerate" zu verstehen, wenn es
sich doch um eine variable Framerate handelt?
> Nebenbei: Schau Dir vielleicht mal http://encode2mpeg.sourceforge.net
> an. Das ist bisher das universellste und beste Rundumschlagmichtod-Skript
> in dieser Richtung, das ich bisher gefunden habe. Das deckt einen ganzen
> Berg von möglichen Szenarien recht gekonnt ab. Aufgrund der Fähigkeiten
> allerdings nicht völlig unkomplex. Ob das im konkreten Falle besser klar
> kommt, müßtest Du mal ausprobieren.
ok, danke für den Tipp. Das schaue ich mir gerne mal an.
> > Ich habe aber inzwischen mit "Super" (;http://www.erightsoft.com/SUPER.html)
> > ein entsprechende Tool gefunden, mit dem sich Videomaterial mit variablen
> > Bitraten ohne Sync-Probleme konvertieren lassen.
>
> Moment. Variable Bitrate und variable Framerate sind was
> grundverschiedenes. Das wirfst Du jetzt durcheinander.
Stimmt, das sind zwei paar Schuhe. Allerdings scheint das
Realvideo-Material zu allem überfluss auch noch mit variablen Bitraten
zu arbeiten. (;.rmvb = realmedia-variable-bitrate).
> > Nur schade, daß es sich dabei um eine Windows-Software handelt; ne
> > Linux-Lösung wäre mir natürlich lieber gewesen.
>
> Ein Video mit variabler Framerate in ein anderes Format (;u.a. halt auch
> mpeg2) zu wandeln geht auch mit üblichen unter Linux verfügbaren Tools
> problemlos. mplayer/mencoder als Schweizer Taschenmesser in Sachen Video
> ist da fast immer das richtige Tool.
ok. Und wie sieht es mit variablen Bitraten aus? Könnte die variable
Bitrate das "dvd-to-video" (;mplayer/ffmpeg/mp2encode/mplex) bezüglich
a/v-sync ins Schleudern bringen?
--
Gruß,
Jörn
Antwort von Hanson Woo:
total video converter http://www.effectmatrix.com
Antwort von Nikolai Försterling:
begin: Joern Bredereck schrub:
> Normalerweise benutze ich (;unter Linux) eine Script-Sammlung namens
> "video-to-dvd". Dieses Script verwendet den Mplayer um die Quelldatei
> zu demuxen und dann wieder als mpeg2/mp2 zu encoden und mit mplex zu
> muxen.
Ich habe sehr gute Erfahrungen mit "tovid" gemacht.
Auch so ein ich-kann-fast-alles-Paket.
> Bei allen gängigen DivX-Varianten klappt das auch hervorragend, aber
> bei Realvideo erhalte ich immer unsynchrone mpeg2-files, bei denen Ton
> und Video auseinanderlaufen. Es sieht fast so aus, als wenn der
> Realcodec keine konstante Samplingrate oder keine konstante FPS-Rate
> benutzen würde.
>
> Kennt jemand von euch eine Lösung, um zuverlässig Realvideo-Material
> nach mpeg zu recodieren? Eine Linux-Lösung würde ich natürlich
> bevorzugen, aber zur Not boote ich auch mal Windows, falls es dort
> eine passende Software gibt.
Sofern die Real-Codecs installiert sind, sollte das mit "tovid" kein
Problem sein.
Mit Realvideo direkt habe ich es aber noch nicht ausprobiert.
Berichte mal, wenn es damit auch klappt.
--
lg Niko
Unzählige Menschen haben Völker und Städte beherrscht, ganz wenige nur
sich selbst. (;Seneca)