Welcher ffmpeg-Befehl würde ein Video für iPad / iPhone / iPod konvertieren?


24

Ich verwende derzeit eine Batch-Datei, die (unter anderem) die folgende handbrakecli-Befehlszeile ausführt, um ein Video zu konvertieren:

HandBrakeCLI.exe -v0 --input "D:\input.mkv" --preset="Universal" --ipod-atom -t 1 --angle 1 --gain 0 --output="D:\output.mp4"

Dies hat mir viele Jahre lang geholfen, eine Videodatei zu produzieren, die kleiner als das Original ist (gut, wenn Sie nur 16-Gbit-Geräte haben), gut genug aussieht und auf so ziemlich jedem iPod, iPad und iPhone funktioniert, auf dem ich sie anbringe.

Im Laufe der Zeit bemüht sich handbrakecli jedoch, immer mehr Videos so zu konvertieren, dass ich nach einer Alternative suchen muss. Die Tatsache, dass die Protokolle absolut keine Informationen darüber enthalten, warum sie abgestürzt sind, hilft nicht. Dieses Video ist beispielsweise bei der Konvertierung mit 71% abgestürzt. Dies sind die letzten 4 Zeilen:

AC3 Passthru requested and input codec is not compatible for track 2, using AC3 encoder
x264 [info]: using SAR=9593/9600
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
x264 [info]: profile Constrained Baseline, level 3.0

Nicht sehr hilfreich.

Ich habe versucht, ffmpeg als Alternative zu verwenden, aber alle Beispiele, die ich im Internet gesehen habe, haben eine oder mehrere der folgenden Möglichkeiten:

  1. Funktioniert nicht (Befehlszeilenoptionen werden nicht erkannt) - häufig!
  2. Ergebnis in einer Datei, die größer als das Original ist - sehr häufig!
  3. Verzerren Sie das Bild, insbesondere wenn eine unerwartete Videogröße konvertiert wird (z. B. Nicht-Widescreen-PAL).
  4. Audio entfernen
  5. Führen Sie zu einem Video, das auf dem iPhone, iPod oder iPad nicht wiedergegeben werden kann

Gibt es eine anständige Allzweck-ffmepg-Befehlszeile, mit der jedes Video auf allen Apple-Geräten problemlos ausgeführt werden kann und die Dateigröße reduziert wird?

Bonuspunkte, wenn es Videos über 720p verkleinert (aber nicht verzerrt).


Wann haben Sie das letzte Mal ein Upgrade von handbrakecli durchgeführt?
Gene

Sehr häufig in der Hoffnung, dass der Absturz behoben wird. Ich verwende derzeit 0.10.2 (2015060900) - MinGW x86_64.
Richard

Ich hatte ein mp4-Video, das sich weigerte, auf iOS zu funktionieren, und dies war der kürzeste Befehl, den ich heraufbeschwören konnte, der dies behebte: ffmpeg -i broken_video.mp4 -pix_fmt yuv420p working_video.mp4
Bemmu

Antworten:


30

Hier ist meine Meinung dazu. Ich nehme das iPhone 4 oder neuer (einschließlich aller iPads) als Ziel: H.264-Hauptprofil, Stufe 3.1

ffmpeg -i input.mp4 -vcodec libx264 -profile:v main -level 3.1 -preset medium -crf 23 -x264-params ref=4 -acodec copy -movflags +faststart output.mp4

Die Werte, die Sie frei ändern können:

  • -crf 23: Die konstante Qualitätseinstellung. Höherer Wert = weniger Qualität, kleinere Datei. Niedriger = bessere Qualität, größere Datei. Gesunde Werte sind [18 - 24]
  • -preset medium: Wenn dies für Sie zu langsam ist, verwenden Sie ein schnelleres Preset. Wenn Sie die Geduld dafür haben, verwenden Sie eine langsamere. Sehen Sie hier für weitere Informationen.
  • -acodec copy: Versucht, die Audiospur in den MP4-Container zu kopieren. Wenn es nicht kopiert werden kann, müssen Sie es erneut in AAC / MP3 / AC3 ​​codieren ... zB-acodec libmp3lame

Wenn Ihr Video größer als 720p ist, fügen Sie nach der Eingabe Folgendes hinzu:

-vf "scale=-2:720:flags=lanczos"

Dadurch wird Ihr Video auf 720p verkleinert und das Seitenverhältnis beibehalten. Der verwendete Skalierungsalgorithmus ist Lanczos, da er viel besser als der Standard ist.


3
Sie können -vf "scale=-2:720:flags=lanczos"stattdessen verwenden. Das Hinzufügen -movflags +faststartwird empfohlen, wenn die Datei per progressivem Download angezeigt wird, z. B. in einem Browser (und wenn dies nicht der Fall ist, schadet die Option sicherlich nicht).
Logan

Der von mir verwendete Zeranoe-Build wird nicht unterstützt x264-params. Gibt es eine Möglichkeit, dieses Problem zu umgehen, ohne es selbst zu bauen?
Richard

Ich benutze selbst einen Zeranoe Build und -x264-paramsarbeite einwandfrei . Bist du sicher, dass du nichts verpasst hast? Die Option dient hauptsächlich der Sicherheit, um zu vermeiden, dass mehr als 4 Referenzrahmen vorhanden sind, die von einem älteren Decoder möglicherweise nicht verarbeitet werden.
Ely,

-acodec libmp3lamefunktioniert bei mir nicht Um Audio auf meinem iPad Mini zu aktivieren, habe ich ffmpegmit nonfreeVariante umgebaut und libfdk_aaccodiert verwendet.
Vitaly S.

0

Dies ist einfach, hat aber auf einem iPad 3 sofort funktioniert

ffmpeg -i inputfile outputfile.m4v
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.