Beiträge von Yod@

    Der Hauptgrund dafür ist, dass Matroska leider in keinem aktuellen Standard vertreten ist - warum auch immer...

    Nur Googel unterstützt es mit Android ordentlich...

    Wenn sich dafür mal einer einstzen würde, dass Matroska in einen großen Standard aufgenommen wird, dann wird sich etwas ändern!

    Das fragen reicht schon lange nicht mehr, weil solche politischen Entscheidungen seit geraumer Zeit schon, ohne den Kunden getroffen werden. - eigentlich haben die in dieser Hinsicht noch nie auf den Kunden gehört, seit Verabschiedung des ersten Standards "VCD" nicht...

    Selbst DivX wurde erst in den MP4-Standard (Part 2) aufgenommen, als es schon veraltet war...

    ...

    Deine Kritik macht mich neugierig, was du eigentlich erwartest, und für welchen Einsatzzweck du deine Tonspuren optimierst. ...

    Also, am wichtigsten ist mir Kompatibilität. Deshalb verwende ich z.Z. auch hauptsächlich MP4+AVC+AAC (ich verwende FFmpeg mit dem "libfdk_aac").

    Meine Test (die sind aber auch schon 1-2 Jahre alt) hatten gezeigt, dass alle AAC-Encoder, die FFmpeg verwendet, mit VBR eine miese Qualität haben und nur die per Lib eingebundenen ("libfdk_aac") mit anderen Optionen eine gute Qualität bringen. => https://trac.ffmpeg.org/wiki/Encode/AAC#FAQ

    Ich finde das nur etwas umständlich, jedesmal extra die sinnvolle Bit-Rate zu errechnen.

    Alternativ setze ich jetzt (wo HTML5 auch Inline-Videos unterstützt) WebM+VP9+Opus ein (später wird VP9 durch AV1 ersetzt werden), nur leider kann WebM nicht die Untertitelvormate von beispielsweise DVD, sondern stupf nur WebVTT... deshalb setze ich mit Untertitel hier den Container MKV ein... leider wird der aber von den meisten Consumer-Geräten nicht unterstützt und auch von HTML5 nicht... deshalb meine Frage - ob es vielleich Sinn macht, mit Untertitel, den OGV zu verwenden (der wird von HTML5 unterstützt).

    Das AAC-Problem interessiert mich in Verbindung mit meinem GitHub-Projekt: https://github.com/FlatheadV8/Filmwandler

    Hier steht Kompatibilität an erster Stelle und an zweiter stelle Dateigröße, bei der Qualität soll es so wenig Verluste wie möglich geben - außer, der User will das (mit Hilfe von Optionen).

    AAC ist mit der beste Audiocodec den ich kenne (verlustbehaftet komprimiert). Mit eac3to lässt sich auch ruckzuck aus jedem Surroundformat eine Surround AAC erstellen.

    Zum Container selber, da findet man irgendwie nichts. Ist ja auch eher für Codecs von Xiph gedacht. Laut Wikipedia:

    https://en.wikipedia.org/wiki/Ogg

    Ja, der kommerzielle gehört zu den besten. Der freie eingebaute in FFmpeg kann nicht, der kann nur das Profil "aac_low" und der libaac (den ich verwende) kann zwar das Profil "HE-AAC" aber nur mit fester Bit-Rate - und das meinte ich; auch wenn er sich so ganz gut anhört, sind die Dateien immer größer als mit einem kommerziellen...

    Der OGV ist interessant, weil er zum HTML5-Standard gehört...

    Aber irgendwie kann man mit dem genauso wenig anfangen, wie mit WebM... :(

    Mein größtes Problem mit den ganzen freien Video-Profil-Formaten ist, dass sie oft nur einen einzigen text-basierten Untertitel unterstützen.

    Z.B. unterstützt WebM nur das WebVtt-Format.

    Ich muss dann immer auf MP4+AVC+AAC oder MKV+VP9+Opus ausweichen (ohne Untertitel verwende ich WebM+VP9+Opus), wobei beide jeweils ihre Probleme haben:

    1. Die AAC-Encoder (die von FFmpeg unterstütz werden) haben eine zu schlechte Qualität oder können kein VBR.

    2. Der MKV-Container wird nur selten untestützt, weder von Consumer-Elektronik noch vom neuen HTML5-Standard. - (warum eigentlich?)

    :(

    Gruß

    Yoda

    Hallo,

    weiß einer welche Untertitelformate von ogg/ogv unterstützt werden?

    Das SRT unterstützt wird, weiß ich.

    Aber welche werden außerdem noch unterstützt?

    Wäre schön, wenn einer eine Seite kennen würde, auf der die gesuchten Infos zu OGV stehen oder die Info hier postet.

    Gruß

    Yoda

    Also, ein kleiner Zwischentest (von 3600. Sekunde bis zur 3660. Sekunde) wurde erfolgreich, mit allen Untertitelspuren erstellt. :)

    Ich verwende jetzt für die beiden neuen Parameter immer den größtmöglichen Wert (ganz stumpf), das funktioniert prima:

    Und der neu übersetzte Test von mir sieht dann so aus:

    Also scheint mir das Problem jetzt absolut gelöst.

    Danke! Für die sehr hilfreiche Unterstützung! :)

    Gruß

    Yoda

    Das ist aber irreführend, denn der Name lautet ja "fpsprobesize" somit bin ich von einer "Größe" ausgegangen...

    Aber egal, denn die vollständige Liste aller Spuren gibt er aus, wenn die beiden Optionen "-probesize" und "-analyzeduration" zusammen verwendet werden:

    Danke!

    Somit sollte das Problem gelöst sein.

    Der Kommando-Start hat auch ohne Fehler funktioniert. :)

    In ein paar Stunden sollte ich Gewissheit haben...

    Gruß

    Yoda

    Was die Auswahl an CLI-Software zur Konvertierung angeht, da würde ich eher auf Selur verweisen, der hat mehr praktische Erfahrung damit, welche plattformübergreifende Software verfügbar ist. Im Bereich "DVD rippen" fällt mir lediglich vStrip ein, davon müsste es auch mal eine CLI gegeben haben (als GUI würde ich sonst PGCDemux bevorzugen); aber das ist auch noch der eine nicht voll automatisierbare Schritt, denn DVD-Authoring ist so vielfältig, die Auswahl an PGC, Angle und Spuren muss manuell erfolgen. Optimal ist für meinen Geschmack, wenn man eine fortlaufende "PGC-VOB" mit Videospur und gewünschten Untertitelspuren hat (die kann VobSub / VSRip verarbeiten), und die Tonspuren dazu separat demultiplext wurden, um sie evtl. im Originalformat wieder in die Kopie zu übernehmen.

    Die CLI-Encoder kann man dann unter Windows mit einem AviSynth-Skript füttern, das die Filterung übernimmt, oder auf verschiedenen Betriebssystemen mit Python alternativ VapourSynth; Hybrid unterstützt jeweils beides, wenn gewünscht.

    Zum "Tiefenscan" kann man die Parameter -probesize (in Bytes) oder -analyzeduration (in Mikrosekunden) verwenden. Standardwert ist jeweils 5 Millionen (also 5 MBytes oder 5 Sekunden), wohl je nach dem was früher erreicht wird. Große Zahlen darf man mit SI-Suffixen angeben (M/G/T *1000, Mi/Gi/Ti *1024).

    Danke!

    Die Option "-probesize" funktioniert nicht alleine, sie braucht mindestens noch "-fpsprobesize".

    Code
    -probesize         <int64>      .D....... set probing size (from 32 to I64_MAX) (default 5e+06)
    -formatprobesize   <int>        .D....... number of bytes to probe file format (from 0 to 2.14748e+09) (default 1.04858e+06)
    -fpsprobesize      <int>        .D....... number of frames used to probe fps (from -1 to 2.14748e+09) (default -1)

    Obwohl in der Hilfe steht, dass die Maximalwerte für -formatprobesize und -fpsprobesize im Bereich bis 2GiB liegen dürfen, funktionierten sie bei mir nur bis maximal 255MiB.

    ...dann sehe ich zumindest die ersten 4 Untertitel (die letzten beiden beginnen leider erst nach mehr als 255MiB).

    Gruß

    Yoda

    Ja, stimmt. Ich ziehe mir praktisch eine mögliche Version (nur einen Blickwinkel usw.) aber das reicht mir. Nur die Untertitel hätte ich noch gerne. In der Dokumentation vom Author von vob2sub ist nachzulesen, dass der MPEG-Container bis zu 32 Grafische Schichten für z.B. Untertitel unterstützt und davon machen die DVD-Leute auch reichlich Gebrauch.

    Kannst Du mir bitte noch sagen, wie man ffmpeg überreden kann, alles zu lesen?

    Danke!

    Welche Windows-Konverter würdest Du denn empfehlen (vorzugsweise für die Kommandozeile - ich weiß, die sind selten)?

    Gruß

    Yoda


    P.S.: Ach, Linux verwende ich nur nebenbei, hauptsächlich werden meine Filme auf FreeBSD transkodiert. :)

    Das sind die Kommandos, die ich verwende.

    Das hier funktioniert, hat aber keine Untertitel drin:

    Code
    /usr/local/bin/ffmpeg -fflags +genpts -i "Avengers_4_-_Endgame.mpg"  -map 0:v -c:v libx264 -profile:v high -preset veryslow -tune film -x264opts ref=4:b-pyramid=strict:bluray-compat=1:weightp=0:vbv-maxrate=12500:vbv-bufsize=12500:level=3:slices=4:b-adapt=2:direct=auto:colorprim=bt709:transfer=bt709:colormatrix=bt709:keyint=50:aud:subme=9:nal-hrd=vbr -movflags faststart -crf 16 -vf scale=856x480,pad='max(iw\,ih*(16/9)):ow/(16/9):(ow-iw)/2:(oh-ih)/2',setsar='1/1' -keyint_min 2-8  -map 0:a:0 -c:a libfdk_aac -afterburner 1 -b:a 344k  -map 0:a:1 -c:a libfdk_aac -afterburner 1 -b:a 344k    -f mp4 -y ./Avengers_4_-_Endgame.mp4

    Das hier funktioniert nicht, weil er die Untertitel nicht findet:

    Code
    /usr/local/bin/ffmpeg -fflags +genpts -i "Avengers_4_-_Endgame.mpg"  -map 0:v -c:v libx264 -profile:v high -preset veryslow -tune film -x264opts ref=4:b-pyramid=strict:bluray-compat=1:weightp=0:vbv-maxrate=12500:vbv-bufsize=12500:level=3:slices=4:b-adapt=2:direct=auto:colorprim=bt709:transfer=bt709:colormatrix=bt709:keyint=50:aud:subme=9:nal-hrd=vbr -movflags faststart -crf 16 -vf scale=856x480,pad='max(iw\,ih*(16/9)):ow/(16/9):(ow-iw)/2:(oh-ih)/2',setsar='1/1' -keyint_min 2-8  -map 0:a:0 -c:a libfdk_aac -afterburner 1 -b:a 344k  -map 0:a:1 -c:a libfdk_aac -afterburner 1 -b:a 344k  -map 0:s:0 -c:s copy -map 0:s:1 -c:s copy -map 0:s:2 -c:s copy -map 0:s:3 -c:s copy -map 0:s:4 -c:s copy -map 0:s:5 -c:s copy  -f mp4 -y ./Avengers_4_-_Endgame.mp4

    Gruß

    Yoda

    Mag ja sein, dass MediaInfo nicht alle Untertitel erkannt hat.

    Aber ohne zu wissen, welche Formate MediaInfo erkannt hat, können wir dir keine weiteren Tipps geben. Schließlich hängt es ganz erheblich davon ab, welches Format deine Quelle hat, welche Tools damit umgehen könnten. Keine Ahnung - keine Hilfe.

    ...

    Stimmt...

    Also es ist ein 1:1 - Rip von einer DVD (MPEG/VOB)

    Diese Spuren werden von mediainfo, ffmpeg und ffprobe erkannt (weil sie bei "0" beginnen):

    Code
    Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
    Stream #0:2[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s

    weiterhin gibt es diese Untertitelspuren, die nicht erkannt werden:

    Code
    Sub-1 startet bei 6,56 Sekunden: sub0/sub0000.bmp        00:00:06,56     00:00:09,06     720     573     0       2       0 255 0 255
    Sub-2 startet bei 6,48 Sekunden: sub1/sub0000.bmp        00:00:06,48     00:00:07,42     720     573     0       2       0 255 0 255
    Sub-3 startet bei 6,48 Sekunden: sub2/sub0000.bmp        00:00:06,48     00:00:09,29     720     573     0       2       0 255 0 255
    Sub-4 startet bei 6,48 Sekunden: sub3/sub0000.bmp        00:00:06,48     00:00:09,29     720     573     0       2       0 255 0 255
    Sub-5 startet bei 52:22 Minuten: sub4/sub0000.bmp        13:15:21,85     00:52:22,49     720     573     0       2       0 255 0 255
    Sub-6 startet bei 19:21 Minuten: sub5/sub0000.bmp        13:15:21,85     00:19:21,26     720     573     0       2       0 255 0 255

    Hier die komplette Ausgabe von mediainfo:

    ...

    Nur vielleicht so was allgemeines: Wenn man ffmpeg so konfiguriert, dass es nicht nur den Anfang, sondern die gesamte Quelldatei untersucht, erkennt es auch alles, was drin steckt. Dann dauert es aber eine ganze Weile, bevor dann die eigentliche Umwandlung beginnt.

    Ohhh, das geht?

    Ich wusste das MEncoder das kann...

    Kannst Du mir bitte ein Beispiel für ffmpeg/ffprobe geben?

    Gruß

    Yoda

    eine andere Idee, die hatte...

    Mit vob2sub kann ich genau ermitteln, wann jede einzelne Untertitelspur beginnt.

    Dann bräuchte ich ein Tool, mit dem ich den Film genau an den entsprechenden Stellen teilen kann und dann einzeln transkodieren und zum Schluß wieder zusammensetzen...

    Aber ein Tool, mit dem ich einen Film so genau an beliebigen Stellen schneiden kann (ohne etwas zu verlieren), kenne ich auch nicht... :(

    Die Erkennbarkeit von Untertitelspuren hängt stark vom Containerformat ab. Es gibt Container, die haben Header, in denen sämtliche Inhalte aufgelistet sind, da wissen Player und Analysetools von vorn herein, was sie zu erwarten haben. Und es gibt andere Formate, bei denen die Player im Grunde alles so auf sich zu kommen lassen und allzeit bereit sein müssen, falls mal was auftaucht. In letzteren Bereich fällt z.B. der MPEG-TransportStream, der auch für Digitalfernseh-Übertragungen geeignet ist, wo damit zu rechnen ist, dass eine Wiedergabe plötzlich mitten in der Übertragung beginnt, wenn jemand z.B. den Sender wechselt.

    Ja, jetzt ist die Frage, welches Tool kann alle Untertitel erkennen? Leider kenne ich nur vob2sub mit diesen Eigenschaften, denn ich habe keine Möglichkeit gefunden, das Untertitel-Format von vob2sub mit ffmpeg zu verarbeiten bzw. in SRT oder ASS umzuwandeln...? :(

    Ich glaube jetzt, dass das mit vob2sub der falsche Ansatz ist.

    Im Internet habe ich nur Möglichkeiten gefunden, wie man Textbasierte Untertitel (SRT oder ASS) mit ffmpeg verarbeiten kann. Diese sub.sub+BMP sind ja alles BMP-Grafiken... die kann man sicherlich auch nur schwer wieder in Text umwandeln.

    Deshalb brauche ich wohl eher ein Programm, mit dem man (genauso wie vob2sub es tut) die komplette Film-Datei durchläuft (dauert auch seine Zeit) und so wirklich alle Untertitel erwischt. Aber eben die Untertitel in einem Textformat wie SRT oder ASS ablegt.

    Hat einer ne Idee, mit welchen Programmen es geht?

    mplayer/mencoder vielleicht...? (aber wie)


    Gruß

    Yoda

    Hallo Leute,

    ich habe einen Film, der 6 Untertitelspuren hat.

    Vier davon fangen nach ca. 6,5 Sekunden an, eine nach über 19 Minuten und die letzte nach über 52 Minuten.

    Keine davon wird von ffmpeg, ffprobe oder mediainfo ausgewiesen bzw. bearbeitet.

    Auch nicht wenn ich mplayer nehme und den ersten Teil (mit "-ss 10") überspringen lasse.

    Hat einer ne Idee, wie man die komplette Anzahl der Untertitel (zuverlässig) ermitteln kann?

    FRAGEN:

    1. Wenn ich die richtige Anzahl der vorhandenen Untertitelspuren weiß, dann kann ich sie mit "vob2sub" extrahieren und dann dem ffmpeg separat übergeben...

    2. ...weiß einer, wie man solche Untertitel (die bestehen aus einer sub.sub und tausende BMP-Dateien) dem ffmpeg übergibt?

    Gruß

    Yoda

    Bei FreeBSD 10 geht es mit dem MPlayer2 + libdvdread.

    Diese Kommandos haben geholfen:

    Code
    pkg install mplayer2-2.0.20130428_9cd /usr/ports/multimedia/libdvdread && make clean ; make config ; make && make install && make cleanmplayer dvd://1 -mc 0 -forceidx -aspect 16:9 -dvdangle 2 -dumpstream --dumpfile=Film.mpgmplayer -aid 1 Film.mpg


    P.S.: Es geht auch mit etwas weniger Parametern:

    Code
    ...
    mplayer dvd://1 -dvdangle 2 -dumpstream --dumpfile=Film.mpg
    ...