Transkodieren alter MJPEG-AVIs in H264

Transkodieren alter MJPEG-AVIs in H264

Ich habe eine Sammlung privater JPEG- und AVI-Dateien (MJPEG-Format), die mit einer Olympus U5000-Kamera aufgenommen wurden. Da MJPEG kein geeignetes Format zum Abspielen in XBMC ist, möchte ich es in das H264-Format umwandeln. Am weitesten bin ich mit der folgenden Zeile gekommen:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4

Diese Zeile konvertiert:

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from 'P3040001.AVI':
  Metadata:
    creation_time   : 2013-03-04 12:21:39
    encoder         : OLYMPUS u5000
  Duration: 00:00:01.99, start: 0.000000, bitrate: 12920 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 30 fps, 30 tbr, 30 tbn
    Stream #0.1: Audio: pcm_u8, 8000 Hz, mono, u8, 64 kb/s

Zu

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2013-03-04 12:21:39
    encoder         : Lavf54.20.3
  Duration: 00:00:02.09, start: 0.000000, bitrate: 35 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 640x480, 17 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
    Metadata:
      creation_time   : 2013-03-04 12:21:39
    Stream #0.1(und): Audio: aac, 8000 Hz, mono, fltp, 9 kb/s
    Metadata:
      creation_time   : 2013-03-04 12:21:39

Wie Sie sehen, habe ich ein Problem mit dem Ton. In output.mp4 ist überhaupt kein Ton vorhanden. Ich würde gerne avconv verwenden, da ich auf meinem xubuntu 14.04-Server eine Menge Dateien habe.

Was mache ich falsch?

Grüße.

Antwort1

Sie haben in Ihrem Befehl nicht angegeben, was mit der Audiospur geschehen soll.

Versuche dies:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4.

Sie können die Bitrate beliebig anpassen. Sie können damit avinfoeine Vorstellung von der ursprünglichen Bitrate bekommen und sie in eine ähnliche umcodieren.

Sie können auch ein GUI-Programm wie Avidemux verwenden.

Antwort2

Versuche dies:

 avconv -i input.avi -c:v libx264 -b 800k output.mp4

Dadurch wird das Video mit dem libx264-Codec mit einer Rate von 800 KB neu codiert und der Encoder entscheidet, was mit dem Audio geschehen soll, um die Kompatibilität mit dem MP4-Container sicherzustellen. Passen Sie die Bitraten an Ihre Qualitätspräferenz an. Alles in allem sollten Sie für größere Filme höhere Bitraten zulassen. (Beispielsweise würde ein Film mit 1280 x 960 etwa die vierfache Bitrate eines Films mit 640 x 480 benötigen, um eine ähnliche Qualität beizubehalten.)

Antwort3

Die beste Möglichkeit wäre vielleicht die Verwendung einesVorgabefür die x264-Kodierung und geben Sie Constant Rate Factor (CRF) anstelle einer festen Bitrate an. Der Ton aus der Quelle ist nicht der beste Ausgangspunkt, aber vielleicht klingt eine Konvertierung in ein VBR-MP3 mit relativ niedriger Bitrate ok. Versuchen Sie Folgendes:

avconv -i P3040001.AVI \
   -c:v libx264 -preset slow -crf 22 -tune film \
   -c:a libmp3lame -qscale:a 7 -ar 44100 \
   output.mp4

und dies könnte eine angemessene Videoqualität und vielleicht auch besseren Ton liefern. Passen Sie die-qscale:eine 7Einstellung für besseren Klang, eine niedrigere Zahl ergibt ein höheres Bitrate-Ziel.

Wenn avconv entweder auf x264 oder libmp3lame abstürzt, müssen Sie die entsprechendenlibavcodec-extra* Paket, das für Ihre Ubuntu-Version geeignet ist.

verwandte Informationen