ffmpeg-Stream-Optionen für mp3, Cover-Art von mp4

Ich habe potenziell Millionen von HLS-Streaming-Videos, die ich aus Cover-Art und MP3s erstellen kann. Offensichtlich möchte ich die resultierende Bandbreite auf ein Minimum beschränken. Ich habe verschiedene ffmpeg-Flags ausprobiert, die speziell für diese Aufgabe vorgeschlagen wurden, und sogar einige auf dem Apple-Mediensegmentierer, der behauptete, in jedes Segment (Meta-Datei/Meta-Typ) ein Cover-Bild einzufügen. Ich hatte viele Probleme damit, Chrome dazu zu bringen, das Cover bei der Wiedergabe mit HTML5 anzuzeigen, obwohl es in VLC funktionierte. Am Ende hatte ich eine funktionierende Befehlszeile wie diese.

ffmpeg -loop 1 -i 1k_image.jpg -i song_219kbs.mp3 -c:v libx264 -pix_fmt yuv420p  -profile:v baseline -c:a aac -strict experimental -b:a 64k -r 1 -shortest song_64k_2fps_baseline.mp4

Das -pix_fmtBasisprofil schien entscheidend zu sein. Kannst du sehen, was ich tue, das unnötig ist? Gibt es einen besseren Weg, mein Ziel zu erreichen?

Außerdem habe ich mir einige der kommerziellen Cloud-Transcoding-Lösungen angesehen und nicht gesehen, wie man eine dafür konfiguriert. Habe ich die Optionen übersehen?

Bitte geben Sie die vollständige Konsolenausgabe Ihres Befehls an.
Verwenden Sie libfdk_aac. Es hat eine bessere Qualität pro Bitrate als der integrierte AAC-Encoder von ffmpeg. Vergessen Sie auch nicht, -movflags +faststartdas MOOV-Atom an den Anfang der Datei zu setzen (wichtig für das Streaming).

Antworten (1)

Wenn Sie nur ein Cover einbetten möchten, können Sie das Ergebnis als mp3 behalten, zum Beispiel:

ffmpeg -i original.mp3 -i cover.png -map 0:0 -map 1:0 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" -id3v2_version 3 -write_id3v1 1 result.mp3

Wenn Sie mp4's erstellen, zB für YouTube, dann schlage ich vor, den Vorgang in zwei Schritte aufzuteilen - erstellen Sie zuerst den Videofilm ohne Tonspur, Dauer etwas länger als die des Tons. Muxen Sie dann Video und Audio zusammen mit der -shortestOption, die das Video auf die genaue Dauer des Audios kürzt. In Bezug auf die Zeit werden diese beiden Schritte etwas länger dauern als ein einzelner Durchgang, aber Ihr gesamter Arbeitsablauf wird viel einfacher und überschaubarer.

Wow das hat wirklich funktioniert. Ist das nicht kürzer mit ffmpeg?