ds.jar vs. transcode

  • Hi @all,


    ich würde hier gerne ein Diskussion entfachen, welche die Vor- und Nachteile der beiden Tools herausarbeitet. Und zwar aus 2 Gründen: Zum einen finde ich es schade, dass der Entwickler von ds.jar an seinem Tool nicht zu den bisherigen Bedingungen weitermacht, zum anderen finde ich den Ansatz von transcode sehr gelungen und flexibel.
    Bevor man jetzt, wie in einem anderen Thread angedeutet, Gehirnschmalz in die Entwicklung eines neuen Tools a la ds.jar hineinsteckt, wäre es da nicht überdenkenswürdig, eben diesen Aufwand für die Verbesserung/Erweiterung von transcode zu benutzen? Das Design gibt es jedenfalls her...


    Also:
    Was spricht für ds.jar/transcode?
    Was spricht gegen ds.jar/transcode?

    cu -HD-

    VDR1 (stable),
    yavdr 0.3: POV330 ION, 3GB, OCZ Vertex2 60GB, DD Octopus 1xDuoFlexS2

  • Hallo Holger,


    transcode ist ein ultra-mächtiges Packet, welches Video und Audio Formate via plugins lesen und schreiben kann, also das Format der Daten ändert.


    ds.jar habe ich immer nur benutzt, um Video und Audio Daten "auszupacken", hier wird keine Konvertierung in in anderes Format vorgenommen. Durch das Entfernen der "Verpackung" gehen aber AV-sync Infos verloren, und dafür hat ds-jar kompensiert (also Audio Frames eingefügt oder gelöscht).


    Warum soll das nicht auch transcode können?
    Ja, warum eigentlich nicht? Das Problem ist nur, dass es das bis jetzt nicht kann, und ich kein C programmieren kann um das Feature selber hinzuzufügen. Es wäre eher ein Helper-Tool in Transcode nötig (so wie tcprobe oder tcmplex).


    Weil ich die ds.jar Lücke gerne schliessen würde, habe ich mich also mit PES und ES streams beschäftigt und bin dabei, einen ds.jar Ersatz in Perl zu versuchen. (Eigentlich kann ich auch kein Perl, aber immer noch besser als C). Wie in meinem anderen Thread schon angedeutet, wäre ich froh wenn jemand, der wirklich programmieren kann, ein Tool schreiben würde (oder transcode erweitern würde). Aber da ich von niemandem weiss, der an sowas arbeitet, habe ich mich halt selber mal drangesetzt.


    Zum Thema Gehirnschmalz:
    Ich kann zu transcode nichts beitragen (Ist in C, beschäftigt sich mit transcodierung von video und Audio Daten ...)
    Also werde ich mein Schmalz weiter in Perl stecken müssen. Was ich versuchen kann (und das habe ich ja getan), ist, die grundsätzlichen Infos über die Problematik, die ich gefunden habe, mal zu posten, damit andere sich ein Bild davon machen können. Die kann auch jemand als Ausgangspunkt nehmen, der das Problem in C angehen will.


    Mein Fazit:


    - Transcode ist ein mächtiges transcodier Tool, ds.jar ist ein "Entpacker"
    - Wäre cool wenn transcode auch entpacken könnte (via eines neuen tools wie tcpesdemux), aber wer schreibt's?
    - Ich kann nur Perl, also versuche ich ein Tool in Perl (wäre ja auch schön, wenn es unter Windows / MacOS etc laufen könnte)


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

    Einmal editiert, zuletzt von Doc ()

  • Doc,


    Hi,


    hast du mal Kontakt mit dem Autor von PVAstrumento aufgenommen? Der hatte wohl keine Zeit PVAstrumento auf Unix zu portieren, wollte aber bei Fragen zum Thema helfen wenn ich mich recht erinnere.


    bye


    Sven


    Link: Richtig fragen


  • Hi Sven,


    Danke für den Tipp! Ich habe ja jetzt die ISO-Standards über die MPEG Streams, aber es tauchen bestimmt weitere Fragen auf....


    Leider habe ich momentan nicht viel Zeit, aber ich werde zwischendurch immer mal wieder den Fortschritt posten (im anderen Thread). Hoffentlich dann auch mal Code ;)


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • hallo,
    zu den iso standarts.. hast du die legal erworben oder gibts die auch irgendwo als pdf (oder ähnlich) zum download?
    würde mich auch interessieren.
    ich bin momentan dabei einen vdr2divx ersatz mit transcode zu realisieren. das problem ist nur das transcode ohne remuxen leider nicht mit allen vdr files klarkommt. im prinzip denke ich auf da in die richtung "tpesdemux"

  • Hi slime


    http://www.cdaniel.de/elektronik-dvb.phtml


    (In dem Thread "Dokumentation zu MPEG Streams (ES/PES) in diesem Forum findest Du die ganz Vorgeschichte"...)


    Ausserdem viele Links auf mpeg.org.


    Schöne Darstellung des PES Headers auf: http://members.aol.com/mpucoder/DVD/pes-hdr.html
    Die Infos über die Header stimmen nicht nur für VOBs, sondern auch für .vdr Files.


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hallo doc,


    Zitat

    Warum soll das nicht auch transcode können?


    Du meinst, eine mit VDR aufgenommene Video-Datei auszupacken, also den reinen MPEG-2-Stream und den/die Audio-Stream(s) herauszuholen?
    Genau das macht bereits tosvcd. Es holt den MPEG-2-Stream aus einer .vdr heraus, übergibt ihn per Pipe an yuvdenoise, dieser per Pipe an yuvscaler, dieser per Pipe an mpeg2enc und dieser wieder zurück an tosvcd, der den konvertierten Video-Stream in die Datei .mpv schreibt.
    Aus der .vdr Datei wird auch das Audio extrahiert und in die Date .mpa geschrieben. Ist alles konvertiert, wird Audio und Video mit mplex wieder zusammengemuxt.


    Contra transcode:
    Meine Konvertierungsversuche damit resultierten allesamt in einem roten Schleier, der im Video von links unten nach rechts oben verlief. Ich hab's dann mit tosvcd versucht und bin bisher dabei geblieben, auch wenn's noch zu zu großen Dateien bei VCDs führt.


    Grüße
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Zitat

    [Du meinst, eine mit VDR aufgenommene Video-Datei auszupacken, also den reinen MPEG-2-Stream und den/die Audio-Stream(s) herauszuholen?
    Genau das macht bereits tosvcd. Es holt den MPEG-2-Stream aus einer .vdr heraus, übergibt ihn per Pipe an yuvdenoise, dieser per Pipe an yuvscaler, dieser per Pipe an mpeg2enc und dieser wieder zurück an tosvcd, der den konvertierten Video-Stream in die Datei .mpv schreibt.


    Hmm,


    das ist ja das was ds.jar auch macht, allerdings wird beim muxen auch noch audio/video syncronisiert. macht das die von Dir beschriebene Lösung auch? Und vor allem ist das der reine MPEG2 Stream, also ohne Qualitätsverlust?


    bye


    Sven


    Link: Richtig fragen

  • Hallo Sven,


    Zitat

    das ist ja das was ds.jar auch macht, allerdings wird beim muxen auch noch audio/video syncronisiert. macht das die von Dir beschriebene Lösung auch?


    ich glaube, tosvcd synchronisiert auch. Müßte ich nochmal in den Sourcen oder Logs nachsehen. Synchron-Probleme sind mir bei der Wiedergabe der konvertierten Videos jedenfalls noch keine aufgefallen.


    Zitat

    Und vor allem ist das der reine MPEG2 Stream, also ohne Qualitätsverlust?


    Du meinst den Stream, den tosvcd auspackt und an yuvdenoise etc. übergibt? Ich hoffe doch.
    Der Stream, der hinten bei mpeg2enc herauskommt, ist natürlich je nach Parameterisierung von mpeg2enc entsprechend komprimiert und für gesplittete Files für VCD/SVCD angepaßt (mplex splittet dann erst wirklich).


    Grüße
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Hi Doc,


    Sorry, ich habe mich leider noch recht wenig mit MPEG/VDR/Sonstige Files beschäftigt. Daher evtl. eine blöde Frage zum Anfang:


    Zitat

    Original von Doc
    ds.jar habe ich immer nur benutzt, um Video und Audio Daten "auszupacken", hier wird keine Konvertierung in in anderes Format vorgenommen. Durch das Entfernen der "Verpackung" gehen aber AV-sync Infos verloren, und dafür hat ds-jar kompensiert (also Audio Frames eingefügt oder gelöscht).


    Auspacken heisst, dass die Aufnahme (.vdr) dann nacher als 'reines' MPEG vorliegt?


    Zitat

    Original von Doc
    Warum soll das nicht auch transcode können?
    Ja, warum eigentlich nicht? Das Problem ist nur, dass es das bis jetzt nicht kann, und ich kein C programmieren kann um das Feature selber hinzuzufügen. Es wäre eher ein Helper-Tool in Transcode nötig (so wie tcprobe oder tcmplex).


    transcode kann zumindest vdr-Files einlesen. Hat bei mir zumindest in der Version 0.6.2 (IMHO) ganz gut geklappt. Sollte hier noch etwas fehlen, dann bin ich gerne bereit, mir den Aufwand mal anzusehen. Wie gesagt, die File-Formate sind mir zwar (noch) fremd, dafür kenne ich mich mit C/C++, Java etc. ganz gut aus. :)
    Wenn du also den Source-Code von ds.jar hast, dann kann ich mich gerne mal für eine Neu-Implementierung in C/C++ davon inspirieren lassen.
    Ich werde mir auch mal die Infos zu den vdr- und mpeg-Files durchlesen...


    Zitat

    Original von Doc
    Weil ich die ds.jar Lücke gerne schliessen würde, habe ich mich also mit PES und ES streams beschäftigt und bin dabei, einen ds.jar Ersatz in Perl zu versuchen. (Eigentlich kann ich auch kein Perl, aber immer noch besser als C). Wie in meinem anderen Thread schon angedeutet, wäre ich froh wenn jemand, der wirklich programmieren kann, ein Tool schreiben würde (oder transcode erweitern würde). Aber da ich von niemandem weiss, der an sowas arbeitet, habe ich mich halt selber mal drangesetzt.


    OK, da können wir uns ja mal zusammen tun. Ich arbeite beruflich als Software-Entwickler und sollte zumindest das Handwerkszeug zu einem solchen Tool mitbringen können... ;) Allerdings würde ich C/C++ den Vorzug geben.


    Zitat

    Original von Doc
    Zum Thema Gehirnschmalz:
    Ich kann zu transcode nichts beitragen (Ist in C, beschäftigt sich mit transcodierung von video und Audio Daten ...)
    Also werde ich mein Schmalz weiter in Perl stecken müssen. Was ich versuchen kann (und das habe ich ja getan), ist, die grundsätzlichen Infos über die Problematik, die ich gefunden habe, mal zu posten, damit andere sich ein Bild davon machen können. Die kann auch jemand als Ausgangspunkt nehmen, der das Problem in C angehen will.


    Wie, du kannst nichts beitragen dazu? Hast Du nicht gesagt, dass Du dich mit den FIleformaten beschäftigt hast? Das ist schon mal eine ganze Menge! Wäre mir nicht unrecht, wenn ich da jemanden hätte, dem ich ab und an mal ein paar Fragen dazu stellen dürfte...

    cu -HD-

    VDR1 (stable),
    yavdr 0.3: POV330 ION, 3GB, OCZ Vertex2 60GB, DD Octopus 1xDuoFlexS2

  • Hallo Holger,


    Zitat

    OK, da können wir uns ja mal zusammen tun. Ich arbeite beruflich als Software-Entwickler und sollte zumindest das Handwerkszeug zu einem solchen Tool mitbringen können... Allerdings würde ich C/C++ den Vorzug geben.


    wozu das Rad neu erfinden, wenn Werner Schweer mit tosvcd das ganze schon in C++ implementiert hat?
    BTW: Kannst Du lesen? Das hatte ich oben schon mal geschrieben.


    Gruesse
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Hallo Sven,


    Zitat

    Und vor allem ist das der reine MPEG2 Stream, also ohne Qualitätsverlust?


    hier muss ich mich ein klein wenig zu meiner vorigen Aussage korrigieren. Der Stream, den tosvcd produziert, um ihn per Pipe an die mjepgtools (yuv...) weiterzugeben, liegt im sog. YUV4MPEG2-Format vor (siehe man yuvscaler). tosvcd decodiert den MPEG2-Stream zu diesem Format. Ich denke, es braeuchte keinen sonderlich geschickten Entwickler, aus tosvcd das zu machen, was ds.jar macht. In tosvcd ist bereits recht viel implementiert, um Audio und Video aus .vdr Dateien zu extrahieren. Wie es mit Dolby Digital aussieht, weiss ich allerdings nicht.


    Beim DVB-Treiber sind mpegtools dabei. Ich habe mich noch nicht sonderlich mit denen befasst, aber ist da nicht vielleicht ein Tool dabei, das .vdr Dateien demuxen kann? Oder peile ich jetzt voll vorbei?


    Gruesse
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • hi,
    die mpegtools bieten einige gute ansätzte, leider verabschieden diese sich bei mir immer mit einem segfault.
    ich werde mit mal das tosvcd ansehen. evtl kommt transcode ja mit dem "YUV4MPEG2" stream klar. einen veruch ist es mal wert. ich versuche mich schon seit ewigkeiten vom mencoder wegzulösen, aber bin immer an der ersten hrde, das lesen der vdr files gescheitert. danke für den tipp mit tosvcd!


    /edit

    Zitat


    Fixes some synchronisation issues and tries to resync broken streams. You should only mark your movies for cutting. Tosvcd cannot handle movies, which are actually cut by vdr.


    sieht ganz so aus als wäre tosvcd auch nicht die 100%ige lösung. also am liebsten wäre mir ein tool das die vdr-streams liest, evtl. synct und wieder auf stdout ausgibt. praktisch wie ds.jar, nur ohne java und auch in einer pipe benutzbar. (schöne ansprüche hab ich :)
    sinnvoll wäre es auch wenn jemand einen passenden input-parser/input-plugin für transcode coden würde. das reicht dann auch. 8) es gibt ja schon einen vdrac3-audio filter für transcode. warum noch keinen demuxer und passenden video-parser?

  • Hi Markus,


    Zitat

    Original von mark2
    wozu das Rad neu erfinden, wenn Werner Schweer mit tosvcd das ganze schon in C++ implementiert hat?
    BTW: Kannst Du lesen? Das hatte ich oben schon mal geschrieben.


    Aber na klar kann ich lesen. :) Eigentlich wollte ich dir ja auch schon vorher geantwortet haben, bin nur noch nicht dazugekommen. Ich werd mir auf jeden Fall auch tosvcd ansehen, weil Doppelarbeit mag ich eigentlich nicht so gerne...


    Zum Thema Synchronisation: Meine (S)VCDs, die ich mit tosvcd gemacht habe, waren auch immer schön synchron. Auf der Homepage von tosvcd steht auf der Featureliste als erster Punkt " synchronises Video/Audio". Ich denke mal, dass dieses direkt nach dem Auspacken gemacht wird.

    cu -HD-

    VDR1 (stable),
    yavdr 0.3: POV330 ION, 3GB, OCZ Vertex2 60GB, DD Octopus 1xDuoFlexS2

  • hallo zusammen,
    nur mal um leidensgenossen zu finden, oder auch um anregung zu tosvcd zu erstellen: Ich kriege bei mir nur bei bestens aufgenommenen .vdr files tosvcd dazu komplett durchzulaufen. sobald irgendwo ein bischen gebrösel im stream ist fangt tosvcd wider von vorne an.
    ausserdem ist mir nicht ganz klar *zum schlagen bitte hinten anstellen* ob tosvcd nun definitiv mit geschnittenen files zurechtkommen soll oder nicht. auf der site steht nö. aber manchmal gings. mannitec sagt auch erst schneiden, dann cdwechsel markieren ( fragt sich immer noch ob mit einer oder zwei schnittmarken).
    Bei allem respekt vor den tosvcd entwicklern scheint es mir jedoch lohnender ein input plugin für transcode zu erstellen und an den outputs zu feilen um s/vcds und dvds zu erstellen. Das nur nochmal als denkanstoss.

  • Hallo slime,


    Zitat

    die mpegtools bieten einige gute ansätzte, leider verabschieden diese sich bei mir immer mit einem segfault.


    Segmentation Faults hatte ich bei der Verwendung von tosvcd noch keine (bei bisher mind. 150 konvertierten Aufnahmen).


    Zitat

    ich werde mit mal das tosvcd ansehen. evtl kommt transcode ja mit dem "YUV4MPEG2" stream klar. einen veruch ist es mal wert.


    Dem tosvcd wird man auch den plain MPEG2-Stream entlocken koennen, wenn man das Decoden nach YUV entfernt. Man muesste sich halt in die Sourcen einarbeiten und sie umschreiben, oder man zieht sich die Information bzgl. .vdr-Stream-Format heraus und schreibt was neues. tosvcd ist zwar (C) by Werner Schweer, aber von GPL steht auch was dort, auch wenn COPYING fehlt.


    Zitat


    sieht ganz so aus als wäre tosvcd auch nicht die 100%ige lösung.


    Das steht dort auf der Page von Werner Schweer, ja, aber auch Web-Sites sind geduldig. Dass tosvcd keine geschnittenen Aufnahmen verarbeiten kann, stimmt definitiv nicht. Ich schneide alle meine Aufnahmen, bevor ich sie von tosvcd auf SVCD oder VCD konvertieren lasse. tosvcd kann die marks.vdr beruecksichtigen, oder sie ignorieren (Option -U). Wie man will. Ich selbst habe noch bis vor kurzem nach dem Schneiden noch einmal mit VDR Schnittpunkte an Szenengrenzen gesetzt, um nicht mitten innerhalb einer Szene die Disk zu wechseln. Heute ist mir das aber zu muehsam und lasse tosvcd an der Diskgrenze von ca. 800MB schneiden (eigentlich schneidet dann ja mpeg2enc und mplex).
    Fuer tosvcd existieren m.W. nach zwei Frontends: svcd.sh und convert.pl, beide von der Download Seite hier runterzuladen. Ich war mit keinem der beiden recht zufrieden und habe convert.pl in bash umgeschrieben und nach meinen Anforderungen erweitert (Verschieben der konvertierten Aufnahmen in ein anderes Verzeichnis, Verschieben der generierten SVCD- und VCD-Images auf einen anderen Rechner sobald der Mount funktioniert, andere Parameter an tosvcd, Berechnen der Anzahl der benoetigten Rohlinge aus marks.vdr., ...).
    Auch habe ich tosvcd geaendert und neu compiliert:
    - tosvcd uebergab bei VCDs dem mpeg2enc die Option "-q 4", was aber wegen der nicht-VCD-konformen variablen Bitrate zu uebergross generierten VCD-Images fuehrt, die auf keinen Rohling mehr passen. Ich habe diese Optionsuebergabe an mepeg2enc einfach entfernt. Die Dateigroessen fuer die CD-Images sind nun nicht mehr zwischen 835 und 880MB gross, sondern so gross wie ich es will (800MB).
    - tosvcd uebergab dem mpeg2enc immer die Option "-I0" (=progressive scan generieren), was laut "man mpeg2enc" bei Interlace-Videos zu "rotten results" fuehrt. Bei Interlace-Videos uebergibt tosvcd nun die Option "-I1" (=interlace generieren) an mpeg2enc.


    Zitat

    also am liebsten wäre mir ein tool das die vdr-streams liest, evtl. synct und wieder auf stdout ausgibt. praktisch wie ds.jar, nur ohne java und auch in einer pipe benutzbar. (schöne ansprüche hab ich :)


    Also nur einen vdr-Stream demuxen und als plain MPEG2-Stream gesynct remuxen, der dann von jedem MPEG2-Programm gelesen werden kann? Sollte recht leicht herzustellen sein. Die Informationen dazu stecken alle in der Source tosvcd.c. Wie es dabei mit AC3 aussieht, weiss ich allerdings nicht.


    Holger

    Zitat

    Zum Thema Synchronisation: Meine (S)VCDs, die ich mit tosvcd gemacht habe, waren auch immer schön synchron. Auf der Homepage von tosvcd steht auf der Featureliste als erster Punkt " synchronises Video/Audio". Ich denke mal, dass dieses direkt nach dem Auspacken gemacht wird.


    Musst halt mal in den Sourcen gucken. Ich selbst bin mit tosvcd und den von mir angebrachten Aenderungen z.Z. zufrieden. Ich habe keine Lust, mich staendig in Sourcen anderer einzuarbeiten, vor allem, wenn die Sourcen dermassen beschissen eingerueckt sind, wie bei tosvcd. Ich sehe dort auf Anhieb gar nix. Gibt's einen Code Beautifier, den man konfigurieren kann?


    web0pold

    Zitat

    Ich kriege bei mir nur bei bestens aufgenommenen .vdr files tosvcd dazu komplett durchzulaufen. sobald irgendwo ein bischen gebrösel im stream ist fangt tosvcd wider von vorne an.


    Bei Gebroesel solltest Du vielleicht fuer einen sauberen Empfang sorgen. Irgendwann wird es fuer eine Software dann auch zu schwierig, aus einem Gebroesel noch die korrekten Daten herauszufinden.
    Wenn tosvcd allerdings mit einer geringeren Quality (z.B. -q5 statt -q4) neu startet, dann liegt es daran, dass entweder die Option fuer die Anzahl der Rohlinge fehlt (-c) und tosvcd damit versucht, das Video auf einen einzigen Rohling zu komprimieren (default 800MB, intern aber nur 775MB). Oder es wurde die Anzahl der Rohlinge (Option -c), fuer die tosvcd konvertieren soll, zu gering gewaehlt.


    Gruesse
    Markus

    yaVDR 0.5.0a
    DD Cine S2 V6.5 & DuoFlex S2, ASRock B75 PRO3, NVidia GT610-SL, Core i3-2120T, 4GB, 60GB SSD, 1.5TB
    Samsung UE46F8090, Sony STR-DB780, 5.0 surround A.C.T. speaker

  • Hallo zusammen,


    ist ja mächtig was los hier im Thread, gute Sache ;)


    Hier (nochmal) meine Sicht der Dinge:


    - Was ds.jar gut kann, ist einen PES-MPEG Stream (wie in .vdr Files) in ES-Streams aufzuspalten und dabei die AV-Sync zu korrigieren. Das macht es für ALLE Audio-Streams, die sich im PES_Sream finden
    - Mir ist kein Tool bekannt, welches genau diese Lücke schliesst
    - Ich benötigte ds.jar vor allem, um aus .vdr Files DVDs zu erzeugen, und habe mich deshalb entschlossen, mal selber zu versuchen, ob ich so ein Tool basteln kann. Aus verschiedenen Gründen versuche ich das in Perl (der wichtigste ist, dass ich nicht programmieren kann, und mit Perl noch am besten zurecht komme)
    - Natürlich wäre es schön, wenn ein Profi ein SuperGutesSuperSchnelles Tools in C/C++ programmieren würde
    - Ich habe allerdings jetzt Blut geleckt, weil es einigermassen vorangeht, und werde auf jeden Fall versuchen, mein Perl Tool fertig zu stellen.
    /Täum-Modus ein
    - Ausserdem würde ich gern ein ein Schnitttool schreiben, damit ich die .vdr Files auch ohne VDR auf dem Rechner
    schneiden kann. Auch unter Windows (-> Perl)
    /Extra Träum-Modus ein
    - Super cool wäre Frame-genaues Schneiden
    - Und ein Stream Repair Tool, was defekt PES-Packets einfach rausschmeisst (GOP genau) (also Auto-Cut von defekten PES-Streams)
    /Extra Träum-Modus aus
    /Täum-Modus aus


    Ein paar Infos über PES und ES streams habe ich schon mal hier gepostet:
    http://www.vdrportal.de/board/thread.php?threadid=1967&sid=




    Wo ich stehe:
    Ich kann mit meinem Tool:
    - die MP2 Streams in einem .vdr File analysieren (Bitrate, Mono-Stereo etc, Abtast- Frequenz, MPEG-Layer, Copyright/CRC etc) und in einen ES_STREAM abspeichern
    - Den Video Stream analysieren und in einen ES_STREAM abspeichern
    - In MP2 Streams die Audioframes finden, zählen und daraus die Länge des Sounds berechnen und mit den Time-Stamp Informationen im PES-Stream abgleichen
    - In Video Streams die Anzahl der Frames und GOPs ermitteln, daraus die Länge berechnen und ebenfalls mit den Time-Stamps im PES-Streams vergleichen
    - Schnitte detektieren


    Damit habe ich eigentlich alles, was ich für eine AV-Sync Korrektur brauche. Das einzige was fehlt ist Zeit....


    Nun zu denn einzelnen Fragen:


    slime
    So ein tool wie Dir schwebt mir auch vor...


    Holger D.
    Dei AV-Sync MUSS nach dem Auspacken gemacht werden, da danach die alles entscheidenden PES-Timestamps futsch sind (genauer: die Infos zur Sync müssen zumindest beim Konvertieren eines PES Streams in mehrere ES Streams gewonnen werden, nutzen kann man sich natürlich auch später).
    Was die Implementierung in C/C++ angeht, würde ich natürlich sofort alle Infos rausrücken, die ich so habe ;) Just ask.... ( mehr infos in dem Thread, den ich oben erwähnt habe)


    @ web0pold
    Ich denke, man sollte fair sein und den Fokus von transcode und tosvcd berücksichtigen. transcode erwartet einfach einen korrekten Stream (und tosvcd anscheinend auch). Es fehlt eben ein Tool, das defekte PES-Streams "repariert". Deshalb habe ich ja oben auch den Träum Modus eingeschaltet ;)


    @ mark2
    tosvcd scheint ja unter anderem das zu können, was mir vorschwebt. Ich will allerdings die Streams gar nicht "anfassen" oder Umkodieren, nur Audio-Frames einfügen / löschen. Evt. liesse sich darauf Aufbauen, ich werde es mir mal anschauen.


    Cheers


    doc

    Mitstreiter für VDRsync gesucht!
    Egal ob Perl Programmierer, Tester, Doku-Schreiber oder User, jede Hilfe ist willkommen. Infos hier im Board (nach vdrsync suchen) oder auf der vdrsync-Homepage

  • Hi Doc,


    bin nur ein mittelmäßiger C++-Programmierer, dazu noch bisher nur unter Windoof, würde aber trotzdem gerne mithelfen. Wenn Holger D. allerdings das beruflich macht, ist das vielleicht wirklich besser, wenn er der 'Haupt'-Programmierer ist... :) . Könnte allerdings sein, dass mir die Zeit zu knapp wird, aber man müsste einfach mal schauen... Zumindest habe ich ein paar Ideen (s.u.)


    Auch ich kann nur sagen, dass DS.JAR für mich das Tool No. 1 ist, da es alle Audioströme extrahiert und vor allem AC3 schneidet.


    Was mir vor allem abgeht, ist eine Möglichkeit, Frame-genau zu schneiden - und das mit Ton. Hänge gerade dran, weil ich die Star Wars EP IV-Kopie mit der Wiederholung vor ein paar Tagen mischen will.
    Die theoretische Vorgehensweise unter Windows (sorry!) habe ich mir wie folgt ausgedacht, nachdem der Film mit DS.JAR gemuxt worden ist (ggf. die Werbeblöcke grob rausschneiden):


    (*** präsentier, blink, NEU NEU NEU ***) :) :) :)


    Video-Teil:
    - Mit MME.EXE im M2V-VFAPI-Paket unter www.marumo.ne.jp/mpeg2/ die werbefreien Sequenzen an den I-Frames ausschneiden. Das Tool zeigt eine Video-Vorschau an, die gerade dargestellte Frame-Nummer sowie den Frame-Typ (I,B oder P). Source-Code ist scheinbar auch dabei.
    - Die Frame-Nummer, an der geschnitten werden soll notieren. Die Frame-Nummer des P-Frames notieren, das vor dem letzten I-Frames vor dem Schnitt steht.
    Beispiel: Pro Sieben sendet IBPBPBPBPBPBI... Soll der Schnitt z.B. bei Frame 2350 sein und das I-Frame davor ist bei Frame-Nr. 2346, so wird am P-Frame bei 2344 geschnitten und ab 2345 muss neu kodiert werden... (nächster Schritt)
    - Mit TMPGEnc ab dem B-Frame (im obigen Beispiel 2345) bis zum Schnittpunkt neu kodieren. 4 MBit/s CBR dürften für die paar Frames reichen. Closed GOP. Die MPEG-Einstellungen (z.B. Bildformat, Interlace, Zig-Zag- oder Alternate Scanning) und die Quantisierungsmatrizen können aus dem Original-MPEG-Stream ausgelesen werden (oder derzeit manuell mit dem Tool ReStream von SHH unter shh.dvdboard.de ).


    Audio:
    - Damit man Frame-genau Audio mit DS.JAR schneiden kann, muss man den ganzen Videostrom mit TMPGEnc und dem bereits vorhin erwähnten M2V-VFAPI-Plugin neu kodieren. Der Trick: GOP-Size = 1, Frametype: I-Frame. Als Auflösung kann man alternativ 352x576 nehmen, die Datenrate sollte zwischen 1 und 2 MBit liegen. Es kommt nicht auf die Bildqualität an, aber es darf auch keine Buffer Underruns wegen zu niedriger Datenrate geben.
    - Das neue I-Frame-Video mit den Tonspuren und z.B. den MPEG-Tools von TMPGEnc muxen.
    - Das ganze neue File in DS.JAR laden und mit der Cut-In-Cut-Out-Funktion die Tonspuren "schneiden" - sowohl die Bereiche ohne Werbung, als auch die neu berechneten. Das alles in Extra-Dateien.


    So, und jetzt alles zusammenfügen. Bin mir nicht sicher, ob man bei AC3 "copy /b" machen darf, bei Video klappt´s aber, so lange man die PTS-Daten mit der Option 'Recalculate PTS' in ReStream korrigiert.
    Das ganze dann wie eine 'normale' DVD authoren. Bei Nicht-DVD-Auflösung kann der DVD-Patcher weiterhelfen: Video auf 720x576 patchen, normal authoren, dann die VOB wieder auf die Original-Größe zurückpatchen, brennen und dann schauen, ob´s der DVD-Player frißt. Die meisten aktuellen Geräte tun´s.


    Ich weiß, klingt kompliziert, aber wer´s perfekt will, ist das wahrscheinlich die einzige funktionierende Möglichkeit. Aber wie man schon sehen kann: Mit PVAStrumento wäre das (leider) nicht möglich.

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

  • Hi,


    holla...da geht ja richtig was hier :). Beim Programmieren kann ich leider nicht aushelfen, aber beim Testen. Brenne z.Zt c.a. 1-3 DVDs die Woche und wenn jemand (Doc?) was funktionierendes hat stelle ich mich gerne für nen Betatest zur Verfügung.


    bye


    Sven


    Link: Richtig fragen

  • Bzgl. "copy /b" bei M2V: Sehe gerade in der Readme von MME, dass das nicht nötig ist, da es M2Vs auch verbinden kann, wenn sie fortlaufend nummeriert sind. Zudem kann´s TMPGEnc natürlich auch über die MPEG-Tools...

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!