JPG zu MPEG2 mit mencoder, möglichst unter Linux

  • Hallo,

    dies ist mein erster Post hier, bitte schlagt mich nicht gleich wenn das hier die falsche Kategorie ist oder so. ;)

    Schon seit längerem versuche ich vergeblich ein JPG in ein simples MPEG2-Video (Pal,25fps) zu konvertieren das 60 sekunden lang sein soll.
    Langes Googeln brachte zwar Ergebnisse, aber keine die mir konkrekt weiter helfen oder bei mir nicht funktionieren. :(

    Ich verwende folgenden Code:

    Code
    mencoder mf://epg.jpg -mf w=768:h=576:fps=25:type=jpg -o output.ts -ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10:vstrict=0

    Dabei gibt er folgende Fehlermeldung heraus.

    Code
    MEncoder Sherpya-SVN-r29355-4.5.0 (C) 2000-2009 MPlayerOption lavcopts: Unknown suboption \Error parsing option on the command line: -lavcoptsExiting... (error parsing command line)

    Zum Testen habe ich dann mal folgendes probiert:

    Code
    mencoder mf://epg.jpg -mf w=768:h=576:fps=25:type=jpg -o output.avi -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell

    Wenn ich dann die output.avi mit MPC+ffdshow öffne, hängt er sich auf. Wenn ich die Datei mit VLC anmache, sieht man wohl für einen kleinen Augenblick das Bild, kann es aber nicht feststellen obs wirklich stimmt, ist einfach zu schnell.

    Ich verwende Windows Server 2008 x64 SP2 mit einem Intel Q9550 und 8GB Ram , so sieht der Output von mencoder aus:

    Welche Parameter muss ich verwenden um aus einem JPG eine sechsig sekündige MPEQ2-TS mit 25fps und PAL-Auflösung zu machen? Interessant wäre auch wie man mehrere JPGs einfügt und diese eventuell mit unterschiedlichen Zeitangaben einbringen kann.
    Bitte helft mir, ich weiß wirklich nicht weiter. :(

    Einmal editiert, zuletzt von Tim2k (9. Juli 2009 um 21:46)

  • :welcome:

    1.) Fehlermeldung lesen.
    2.) Fehlermeldung verstehen.
    3.) Fehler entfernen.

    Vorher: (...) :vbitrate=8000:\ keyint=15: (...)
    Nachher: (...) :vbitrate=8000:keyint=15: (...)
    __

    Allerdings wäre das mit anderen Methoden durchaus leichter zu erreichen, z.B. in AviSynth mit den Funktionen ImageSource und evtl. Loop.

  • Um das Video auch auf die Länge zu realisieren, braucht es ein Audio von der Zeitspanne von 60sek.
    Doch warum versuchst Du sowas mit mencoder, wenn es dafür einfachere Programme gibt ?

    Das allein scheint nicht auszureichen, ich verwende nun folgenden Code:

    Code
    mencoder mf://epg.jpg -mf w=720:h=576:fps=25:type=jpg -audiofile a.wav -oac lavc -ovc lavc -vf scale=720:576,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:vqmin=1:lmin=1:dc=10:acodec=ac3:abitrate=192:aspect=16/9 -ofps 25 -of mpeg -mpegopts format=dvd -o output.mpg

    Der Output von mencoder sieht so aus:

    [ac3 @ 0x15ef100]No channel layout specified. The encoder will guess the layout, but it might be incorrect.
    Wie lege ich die Channels fest? -channels 1 funktioniert nicht so wie ich es auf vielen Seiten gelesen habe. :ichdoof:

    [mpeg2video @ 0x15b99f0]ME_MAP size may be a little small for the selected diamond size
    Was will er mir damit sagen? :huh:


    In der a.wav habe ich mit Adobe Soundbooth eine Silence von 60 Sekunden eingefügt, die Datei lässt sich auch mit VLC und Songbird für 60 Sekunden abspielen, hören tut man natürlich nichts. :)

    Habe die output.mpg mal in Adobe Premiere eingeladen, ein Bild wird auf jeden Fall reingebracht, aber man sieht es nur für einen kleinen Bruchteil von Sekunden. Jetzt fragt er euch sicherlich warum ich das alles nicht gleich mit Adobe Premiere mache? Die Umwandlung soll später automatisiert unter Linux erfolgen, daher muss ich es irgendwie mit einem kommandozeilen-basierenden Programm hinbekommen.

    Später möchte ich auch mehrere JPEGs mit unterschiedlichen Zeiten in ein Video konvertieren können, das wäre sowieso nur unter Verwendung von Avisynth möglich, oder? :grübeln:

    Edit: Funktioniert Avisynth eigentlich einwandfrei unter Linux? Ist ja nicht mal in Portage oder einem Overlay drin. :hm:

    7 Mal editiert, zuletzt von Tim2k (11. Juli 2009 um 19:58)

  • 60 Sekunden Stille - gut und schön; aber 8 kHz mono? DVD-kompatibel ist das sicher nicht.

    Außerdem würde ich persönlich ohnehin bezweifeln, dass man überhaupt zwingend eine Tonspur braucht. DVD-Authoring-Tools nehmen im Allgemeinen gern einen elementaren Video-Stream, und der hat schon für sich allein eine Spieldauer.
    __

    ME bedeutet meist "Motion Estimation", also Bewegungsvorhersage. Die ist bei MPEG-Video wichtig, um gut mit Ähnlichkeiten zwischen (m.o.w.) aufeinander folgenden Bildern encodieren zu können. Eine "Diamantform" (ein Quadrat, das auf der Ecke steht) wird gern zur Definition der Suchform verwendet, weil Kameraschwenks und Bewegungen oft eher senkrecht oder waagerecht verlaufen als in irgend eine andere Richtung. Die Warnung klingt jedoch, als ob die maximale Entfernung für die Bewegungssuche sehr kurz festgelegt wäre, sogar kleiner als eine Diamantumgebung.
    __

    AviSynth 3.0 für Linux ist in der Entwicklung ... und wer sich mit Mencoder beschäftigt, der ist offenbar nicht wirklich ein "Newbie". Wäre uns diese Einschränkung von vorn herein bekannt gewesen, hätten wir uns den Hinweis auf PC-Windows-typische Lösungen wohl gleich sparen können... ;)

    Ich verschieb's also eventuell in die Linux-Rubrik, wenn du einverstanden bist.
    __

    P.S.:

    Video-DVDs haben Unterstützung für Standbilder mit festlegbarer Länge. Das ist jedoch Sache des Authoringtools. In diesem Fall müsste das JPEG lediglich in ein einzelnes MPEG2-I-Frame umgewandelt werden, und im Authoringtool wird dann dessen Anzeigedauer festgelegt. Das ist insofern sparsam, weil zwischen den Standbildern nur Navigationsblöcke gespeichert werden. Für ein "Stand-Video" für 10 Sekunden dagegen würde man 250 Frames benötigen, und damit eine Menge Platz verschwenden.

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    Einmal editiert, zuletzt von LigH (11. Juli 2009 um 21:26)

  • Erstmal vielen Dank für die ausführlichen Antworten, hätte echt nicht erwartet dass man sich hier so um einen Neuling kümmert. :daumen:

    60 Sekunden Stille - gut und schön; aber 8 kHz mono? DVD-kompatibel ist das sicher nicht.

    Oh, ich das wäre egal da er es ja eh in AC3 wandelt! So schnell täuscht man sich.


    ME bedeutet meist "Motion Estimation"...

    Woah, du machst deinem Titel Erklärbär alle Ehre! :)


    Ich verschieb's also eventuell in die Linux-Rubrik, wenn du einverstanden bist.

    Gerne, ich denke auch dass das Thema dort eher hinpassen würde.


    Video-DVDs haben Unterstützung für Standbilder mit festlegbarer Länge. Das ist jedoch Sache des Authoringtools. In diesem Fall müsste das JPEG lediglich in ein einzelnes MPEG2-I-Frame umgewandelt werden, und im Authoringtool wird dann dessen Anzeigedauer festgelegt. Das ist insofern sparsam, weil zwischen den Standbildern nur Navigationsblöcke gespeichert werden. Für ein "Stand-Video" für 10 Sekunden dagegen würde man 250 Frames benötigen, und damit eine Menge Platz verschwenden.

    Eine solche Vorgehensweise hört sich wie geschaffen an für mein Vorhaben, der Vorschlag gefällt mir, danke! :ja:
    Ein einzelenes Frame bekomme ich ja mit mencoder mf://epg.jpg -o epg.mpeg -ovc lavc ..., wie kann ich nun die Anzeigedauer bestimmen?

  • Die Anzeigedauer bestimmst du dann im DVD-Authoring-Programm...
    __

    Mono ist bei AC3 möglich (insbesondere als Center-Spur), aber 48000 Hz muss es sein.

    Aber wie gesagt, für Bilder-Galerien braucht man nicht unbedingt Ton. Im Gegenteil: Wenn man für die Bilder Wartezeiten festlegt, würde das den Ton ja auch stoppen.
    __

    P.S.:

    Doch lieber "MPEG-2 Encoding". "Linux" steht im Titel.

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten

    Einmal editiert, zuletzt von LigH (11. Juli 2009 um 23:36)

Jetzt mitmachen!

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