Video von Digitalkamera zu x264/aac transcoden

  • Hallo,

    ich möchte die Videos meiner Canon A650 (MJPEG/LPCM) zu x264/aac encoden und in einem MP4-Container speichern.


    Meine Problem ist der Ton. Sowohl AviDemux, als auch VirtualDub encoden den Ton nur, wenn ich ihn auf 16 bit umwandle. Beim Umwandeln entstehen aber Störungen, die von der Samplingrate abhängen.

    Gibt es ein Tool, mit dem ich die 8bit/11024Hz LPCM der Kamera direkt encoden kann, ohne diese auf 16bit konvertieren zu müssen?

    Oder anders gefragt: Wie transcode ich am Besten von MJPEG/LPCM zu x264/AAC?

    Am Liebsten wäre mir ein Programm, welches ich per Kommandozeile/Batch bedienen kann, damit ich das automatisieren kann.


    Schon mal Danke im Voraus
    Mark

  • :welcome:

    Beim Umwandeln entstehen aber Störungen, die von der Samplingrate abhängen.

    Ääh ... nein. Die schlechte Qualität stammt allein von der niedrigen Auflösung und Samplingrate des Originals. Ein Konvertieren kann es eigentlich nicht wirklich schlimmer machen ... zumindest wenn die Konvertierung mit hochwertigen Algorithmen (inkl. Obertonfilterung) berechnet wird. Darum wirst du wohl kaum herumkommen.

    An der Kommandozeile ist so etwas grundsätzlich möglich. Die MeGUI beispielsweise benutzt zur Konvertierung jede Menge CLI-Tools und bietet nur eine grafische Oberfläche an. Aber du kannst x264 und den NeroAACEnc natürlich auch direkt mit Parametern versorgen. Das Video wirst du sowieso mit einem AviSynth-Skript an x264 schicken, das Audio vielleicht mit AVS2WAV erst mal zwischenspeichern (AviSynth hat auch Konvertierfunktionen für den Ton).

  • hallo,
    für den Ton kannst du Bepipe und NeroAAcEnc verwenden.
    Bepipe ist im Paket von Behappy enthalten.
    Desweiteren benötigst du NicAudioSource.

    in der commandline übergibst du direkt das Audio direkt an Nero:

    Code
    bepipe.exe --script "NicLPCMSource(^input.pcm^, 11024, -8, 2)" | neroAacEnc.exe -q 0.30 -if - -of tmp.aac

    und für das Video schreibst dir ein kleines Avisynth-Skript mit AviSource und eventl. weiteren benötigten Filtern und gibst es x264.exe zum kodieren.

  • :welcome:

    Danke.


    Ääh ... nein. Die schlechte Qualität stammt allein von der niedrigen Auflösung und Samplingrate des Originals. Ein Konvertieren kann es eigentlich nicht wirklich schlimmer machen ... zumindest wenn die Konvertierung mit hochwertigen Algorithmen (inkl. Obertonfilterung) berechnet wird. Darum wirst du wohl kaum herumkommen.


    Obertonfilter scheint der Encoder von AviDemux zu haben, denn das Ergebnis hört sich viel dumpfer an. Die Aliasingeffekte des Originals werden da wohl weggeschnitten.
    Ich habe inzwischen herausgefunden, dass die Störungen nur dann auftreten, wenn ich NICHT mit 22050 oder 44100 Hz, sondern mit 24000 oder 48000 Hz resample. Warum das so ist, kann ich mir zwar nicht erklären, aber für mich wäre erst mal wichtig, dass ich eine Lösung hätte.

    Mein Problem ist nun, dass AVIDemux nur schlecht von der Kommandozeile aus bedient werden kann. Von der Kommandozeile aus kann ich nicht zu (F)AAC encoden.
    Gibt es dafür vielleicht einen Trick?



    An der Kommandozeile ist so etwas grundsätzlich möglich. Die MeGUI beispielsweise benutzt zur Konvertierung jede Menge CLI-Tools und bietet nur eine grafische Oberfläche an. Aber du kannst x264 und den NeroAACEnc natürlich auch direkt mit Parametern versorgen. Das Video wirst du sowieso mit einem AviSynth-Skript an x264 schicken, das Audio vielleicht mit AVS2WAV erst mal zwischenspeichern (AviSynth hat auch Konvertierfunktionen für den Ton).

    Auweh!
    Das hört sich wild an.
    Dann müsste ich per Batchdatei erst demuxen, zwischenspeichern, Script erstellen, encoden und muxen.

    Das ist doch sehr viel aufwendiger, als ich es mir vorgestellt hatte. Das bekäme ich in angemessener Zeit nicht hin.

    Ich habe mir gestern noch FFMpeg angesehen, weil es dafür auch WinFF gibt, welches mir den Einstieg erleichtern sollte.
    Der Versuch ist allerdings nach mehreren Stunden auch im Sand verlaufen. WinFF scheint dort Parameter zu übergeben, die FFMPEG gar nicht unterstützt.
    Hinzu kommt, dass die Bildqualität bei doppelter Dateigröße zu dem, was mir AVIDemux liefert, schlechter ist. Ich bekomme bei Bewegungen immer leichte Klötzchen geliefert, die erst dann verschwinden, wenn der Bildbereich länger der gleiche bleibt.
    Und der Hinweis in der Hilfe, dass man mit dem Parameter -qscale eine variable Bitrate einstellen kann, funktioniert auch nicht. FFMpeg setzt dann die Bitrate immer auf default = 200kB/s.

    Das ist schon ziemlich frustrierend, wenn nach langem Probieren nichts Brauchbares herum kommt.

    Gibt es ein Tool, wie FFMPEG, mit dem ich Bild und Ton zu x264/aac konvertieren kann, welches ich direkt per Kommandozeile füttern kann, welches aber die gleiche gute Bild- und Tonqualität wie AviDemux liefert?
    :)

  • vicill

    Danke für den Codeschnippsel, aber das wird zu kompliziert für mich.

    Ich brauche etwas, was ich direkt per Kommandozeile aufrufen kann (wie z.B. FFMPEG), was mir Bild und Ton in einem Rutsch erschlägt.
    Wenn ich erst demuxen muss und dann mit temporären Dateien und Scripten hantieren muss, dann wird mir das zu kompliziert. Das krieg ich einfach nicht hin.

Jetzt mitmachen!

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