Die Umstellung von WebM auf MP4 in Ubuntu ist langsam und von schlechter Qualität

12131
dfordevy

Ich habe den Befehl benutzt

ffmpeg -i input.webm -q:v 10 -c:a copy out.mp4 

Ich habe auch versucht, avconvanstelle von ffmpeg zu verwenden.

Die Konvertierung ist erfolgreich, aber die Qualität ist schlecht. Es dauert auch viel Zeit. Es kann auch nicht mit Windows Media Player abgespielt werden. (Der Grund dafür ist das mpegv1, in das die Datei konvertiert wird.) Wie füge ich eine Option zum Konvertieren in mpegv2 hinzu?

Folgendes ist die Befehlszeilenausgabe:

avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers built on Sep 16 2014 18:33:49 with gcc 4.6.3  [matroska,webm @ 0xe737a0] Estimating duration from bitrate, this may be inaccurate Input #0, matroska,webm, from 'test.webm': Duration: 00:00:08.57, start: 0.000000, bitrate: N/A Stream #0.0: Video: vp8, yuv420p, 1536x768, PAR 1:1 DAR 2:1, 1k fps, 1k tbr, 1k tbn, 1k tbc (default)  Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16 (default) [buffer @ 0xee38e0] w:1536 h:768 pixfmt:yuv420p Output #0, mp4, to 'c2.mp4': Metadata: encoder : Lavf53.21.1 Stream #0.0: Video: mpeg4, yuv420p, 1536x768 [PAR 1:1 DAR 2:1], q=2-31, 200 kb/s, 1k tbn, 1k tbc (default) Stream #0.1: Audio: libvorbis, 44100 Hz, stereo (default) Stream mapping: Stream #0:0 -> #0:0 (vp8 -> mpeg4) Stream #0:1 -> #0:1 (copy) Press ctrl-c to stop encoding frame= 8572 fps=342 q=10.0 Lsize= 90902kB time=8.56 bitrate=86984.0kbits/s dup=8438 drop=0  video:90823kB audio:0kB global headers:0kB muxing overhead 0.086778% 
1

3 Antworten auf die Frage

7
slhck

Einige Probleme hier:

  • Sie verwenden eine alte Version von avconvUbuntu 12.04.
  • Diese Version enthält keinen H.264-Encoder ( libx264).
  • Deshalb wählt man stattdessen MPEG-4 Part II-Video mit dem mpeg4Encoder. Obwohl MPEG-4 Part II immer noch denselben MP4-Container verwendet, ist er nicht so effizient wie H.264.
  • Ihr Befehl verwendet -q:v 10, was von recht geringer Qualität ist. Der Bereich reicht von 1 bis 31, wobei 1 der beste Wert ist und idealerweise etwas um 2 bis 5 gewünscht wird.
  • Sie können Vorbis-Audio nicht in MP4-Container kopieren und -c:a copyfunktionieren daher nicht.

Um dies zu beheben, würde ich eine von zwei Optionen empfehlen:

  1. Verwenden Sie weiter avconv. Installieren Sie apt-get install libavcodec-extra-53auf Ubuntu 12.04 und libavcodec-extra-54Ubuntu 14.04, um die Unterstützung von x264 für avconv zu erhalten.
  2. Verwenden Sie ffmpegstattdessen ein aktuelles Element. Laden Sie einen aktuellen ffmpeg-Build herunter (klicken Sie auf den Link Linux Static Builds ). Extrahieren Sie die ffmpegBinärdatei irgendwo und verwenden Sie diese.

Führen Sie dann den folgenden Befehl aus (und ersetzen Sie ihn ffmpegmit ( avconvabhängig von Ihrer Wahl)):

ffmpeg -i input.webm -c:v libx264 -crf 20 -c:a aac -strict experimental out.mp4 

Die CRF steuert die Qualität, wobei 18–28 sinnvolle Entscheidungen treffen. Niedriger ist besser und 23 ist Standard. Sie können die Audio-Bitrate mit -b:a 128koder ähnlich Ihren Wünschen einstellen .

Wenn Sie die Konvertierung beschleunigen möchten, können Sie sie verwenden -presetund auf eine der folgenden Einstellungen setzen ultrafast, superfast, veryfast, faster, fast, z -preset fast. Beachten Sie, dass durch diese Einstellung die Dateigröße erhöht wird.

Die H.264-Kodierungsanleitung für ffmpeg ist sehr hilfreich und sollte auch für avconv gelten (jedoch keine Gewähr dafür).

Was MPEG-2 angeht, werfen Sie einen Blick auf diese Frage: Wie erstelle ich eine MPEG2-Videodatei mit der höchstmöglichen Qualität, die mit FFMPEG möglich ist? - und vergessen Sie nicht, -c:a libmp3lamestattdessen Audio zu wählen .

Was machen wir damit in Ubuntu 14.04? dfordevy vor 9 Jahren 0
In Ubuntu 14.04 können Sie dasselbe tun, jedoch mit `libavcodec-extra-54`. Wenn die Datei "noch MP4v1" ist, müssen Sie mir sagen, was genau Sie getan haben, und die vollständige Befehlszeilenausgabe irgendwo hochladen (z. B. http://pastebin.com/). slhck vor 9 Jahren 0
Ich habe die Ausgabe von: avconv -i input.webm -c: v libx264 -crf 20 -c: aac -strict experimentell test_1min_no_preset.mp4 hier eingefügt: http://pastebin.com/SQdbvM0Y. Wenn ich die Datei test_1min_no_preset.mp4, test_1min_no_preset.mp4 verwende: ISO Media, MPEG v4-System, Version 1 dfordevy vor 9 Jahren 0
Ich glaube nicht, dass avconv oder ffmpeg `mp42'-Tags schreiben können. Warum brauchst du das eigentlich? Ist MP4v1 nicht gut genug? slhck vor 9 Jahren 0
Jeder Tag ist für mich in Ordnung, aber ich brauche ihn nur, um sie mit Windows Media Player abzuspielen. dfordevy vor 9 Jahren 0
Das hängt nur von der Version von Windows Media Player und Windows ab: http://support.microsoft.com/kb/316992?wa=wsignin1.0. Nur der neueste WMP kann H.264 / AAC überhaupt abspielen. Für ältere WMP-Versionen benötigen Sie zusätzliche Codecs. slhck vor 9 Jahren 0
Ich brauche diese Codecs auch, ich brauche es, um auf alten Windows Media Players unterstützt zu werden. Was muss ich dafür machen? dfordevy vor 9 Jahren 0
Siehe http://superuser.com/questions/314694/how-do-i-tell-ffmpeg-to-transcode-to-a-video-codec-supported-by-windows-media-pl und http: // superuser .com / questions / 435941 / which-codecs-am besten geeignet für die Wiedergabe mit Windows-Mediaplayer unter Windows und http://superuser.com/questions/418945/convert-video-into -format-welches-am-wahrscheinlichsten-spielbar auf einem Windows-System ist slhck vor 9 Jahren 0
http://pastebin.com/MR2gkNjA So sieht die Ausgabe auf meinem vertrauenswürdigen Computer aus, auf dem die konvertierte Datei schwarzes Video anzeigt. Mit dem gleichen Befehl wie oben. Die einzige Änderung ist, dass ich versucht habe, nur das Audio zu kopieren. dfordevy vor 9 Jahren 0
Sie haben mir nicht gesagt, welchen Befehl Sie verwenden. Außerdem würde ich empfehlen, dass Sie eine neue Frage stellen (da dieser Kommentarthread wirklich nicht als Ersatz für den Chat verwendet werden sollte), einschließlich des Befehls, der Befehlszeilenausgabe und des Players, in dem Sie das Video anzeigen möchten. Vielen Dank ! slhck vor 9 Jahren 0
4
dfordevy

ffmpeg version 1.2.6-7: 1.2.6-1 ~ trusty1

ffmpeg -i one.webm -r 10 -cpu-used 5 -c: v libx264 -crf 20 -c: ein aac -strict-experimenteller -loglevel-Fehler /tmp/one.mp4

Das funktioniert sehr gut. 1 Stunde Video in 10 Minuten konvertiert.

-2
Overmind

Versuchen ffmpeg -i input.webm -sameq out.mp4

Als Alternative können Sie FFMC ausprobieren: http://www.noobslab.com/2013/04/latest-ff-multi-converter-for-ubuntu.html oder vorkompilierte Miro: http://www.getmiro.com / download / for-ubuntu /

es sagt nicht erkannte Option sameq dfordevy vor 9 Jahren 0
auch ffmulticonverter hat die Konvertierung nicht durchgeführt dfordevy vor 9 Jahren 0
Verwenden Sie nicht dasselbeQ: http://superuser.com/questions/478549/was-is-der-nameq-oder-name-quant-option-in-ffmpeg-does-it-mean-same-quality. Es bedeutet nicht die gleiche Qualität, und aktuelle Versionen von ffmpeg haben diese Option (aus guten Gründen) nicht mehr. slhck vor 9 Jahren 0
@Overmind - Es wäre schön, wenn Sie Ihren Beitrag formatieren würden. Sie haben mehr als genug Ruf, um in Ihren Antworten Hotlinks zu verwenden. Dies ist nur ein Vorschlag, um zusätzliche Abstriche zu vermeiden. Ramhound vor 9 Jahren 0
Ich habe einige Probleme in dieser Angelegenheit. Manchmal funktioniert die Codefunktion nicht richtig (insbesondere bei der Verwendung von Sonderzeichen). Wenn ich die Eingabetaste drücke, wird der Kommentar im Kommentarbereich angezeigt, anstatt in eine neue Zeile zu gelangen. Ich habe nicht versucht, Sonderzeichen wie das Zeilenende zu testen. Jedenfalls versuche ich, mich mit dieser Benutzeroberfläche vertraut zu machen. Overmind vor 9 Jahren 0
http://superuser.com/help/formatting slhck vor 9 Jahren 1
Sie scheinen in Ordnung zu sein, scheinen aber nicht an Kommentaren zu arbeiten. Gibt es eine andere Sache für Kommentare? Overmind vor 9 Jahren 0
@Overmind-Kommentare verwenden eine eingeschränkte Formatierung. Klicken Sie neben dem Kommentarfenster auf den Link "Hilfe". Vergessen Sie nicht, dass Sie an @ -ping-Benutzer eine Benachrichtigung erhalten müssen. slhck vor 9 Jahren 1