
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 avinfo
eine 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.