Was das Gerät unterstützt
Laut dem Xperia U White Paper kann dieses Gerät H.264-Videos, High-Profile, Level 3.2 im MP4-Container mit AAC-Audio decodieren.
Beispiel ffmpeg
Befehl
ffmpeg -i input -codec:v libx264 -crf 23 -preset medium -profile high -level 3.2 \ -pix_fmt yuv420p -movflags +faststart -codec:a aac -strict experimental out.mp4
Was machen diese Optionen?
-codec:v libx264
- Wählen Sie den Video-Encoderlibx264
, um das H.264-Video zu codieren.-crf 23
- Videoqualitätsstufe ausgeben.23
ist die Standardeinstellung und ein niedrigerer Wert ist eine höhere Qualität.-preset medium
- Kodierungsgeschwindigkeit vs. Kompromiss zwischen Komprimierungseffizienz. Standardeinstellung istmedium
.-profile high
- Setzt das H.264-Videoprofil auf Hoch.-level 3.2
- Stellt den H.264-Videopegel auf 3,2 ein.-pix_fmt yuv420p
-ffmpeg
Versuche, Chroma-Subsampling zu minimieren oder zu vermeiden (abhängig von Eingang, Encoder,ffmpeg
Version usw.). Dies ist technisch gesehen eine gute Sache, kann aber zu einer Ausgabe führen, die von nicht auf FFmpeg basierenden Playern nicht verarbeitet werden kann. Dies gewährleistet ein kompatibles Chroma-Subsampling-Schema.-movflags +faststart
- Verschiebt das "moov-Atom" an den Anfang der Datei, so dass die Wiedergabe beginnen kann, bevor die Datei vollständig heruntergeladen wird, wenn der Download progressiv ist (z. B. Ansehen über einen Browser).-codec:a aac -strict experimental
- Kodieren Sie AAC-Audio mit dem experimentellen nativen AAC-Encoder von FFmpeg. Es ist nicht der schlechteste AAC-Encoder, aber wenn es beschissen klingt, verwenden Sie eine höhere Bitrate-b:a
(Standardeinstellung ist 128k).
Zusätzliche Bemerkungen
Verwenden Sie eine aktuelle Version von
ffmpeg
. Alte Versionen erzwingen bei der Verwendung nicht die korrekte Anzahl von Referenzframes-level
(behobener Fehler # 3307 ), aber da Sie Arch Linux verwenden, müssen Sie sich darüber keine Gedanken machen.Das ffmpeg-Paket aus dem Arch Linux Extra-Repository unterstützt nur den nativen AAC-Encoder von FFmpeg. Rekompilieren Sie aus ABS mit
--enable-libfdk-aac --enable-nonfree
(mit dem Paket libfdk-aac als Abhängigkeiten) oder verwenden Sie das Paket ffmpeg-git in AUR, um Unterstützung für die Codierung mit libfdk_aac zu erhalten, dem besten von FFmpeg unterstützten AAC-Codierer. Die Verwendung des ABS-Pakets wird gegenüber dem AUR-Paket empfohlen, wenn Sie dies versuchen möchten.Wenn das Eingangsvideo und / oder -audio bereits kompatibel ist, können Sie es einfach streamen, anstatt es neu zu kodieren, z. B. mit
-codec:a copy
.Das mobile Gerät verfügt möglicherweise über zusätzliche Einschränkungen, die mir nicht bekannt sind. Sie müssen also experimentieren. Ich bin mir auch nicht sicher, ob das Gerät mit einem einfachen Link zum Video arbeitet, aber das wäre leicht zu testen.
Weitere Informationen finden Sie im FFmpeg H.264 Encoding Guide und im FFmpeg AAC Encoding Guide .