2012-10-17 11 views
5

Ich möchte von .flv zu .h264 Format konvertieren.Wie konvertiert man .flv Video in .h264 Format mit FFmpeg?

Problem: Ich habe eine Konvertierung von FLV zu H264-Format haben, aber meine konvertierte Video (.H264) so ​​schnell läuft (so wie wir es auf einer Schnellvorlauftaste klicken würde).

Ich benutzte den folgenden Befehl ein:

ffmpeg -i example.flv -sameq -vcodec libx264 -vpre default -ar 22050 output.h264 
+1

Bitte aktualisieren Sie Ihre Frage, um die gesamte Konsolenausgabe einzuschließen. Verwenden Sie nicht "-sameq": [sameq bedeutet nicht "gleiche Qualität"] (http://superuser.com/a/478550/110524). FFmpeg Nutzungsfragen sind besser für superuser.com geeignet. – LordNeckbeard

Antwort

13

Die Lösung ist, dass Sie ein Containerformat benötigen. Raw h.264 hat keine Timing-Informationen für ein Video, weshalb Ihr Player es sehr schnell spielt.

Auch wird Ihr Befehl alle durcheinander. Möchten Sie Audio in Ihrer Ausgabe oder nicht? Wenn ja, müssen Sie ein Containerformat angeben, das sowohl Audio als auch Video enthält.

Entweder Ihre Ausgabe in eine mp4 ändern

ffmpeg -i input_file -c:a copy -c:v libx264 -profile:v baseline out.mp4 

oder einem anderen Behälter. Wenn Sie einen reinen Videostream verwenden möchten, entfernen Sie die Audiooptionen und fügen Sie hinzu.

Wenn Sie AAC-Audio verwenden, statt, was auch immer die FLV-Datei hat:

ffmpeg -i input_file -c:a aac -strict -2 -b:a 128k -c:v libx264 -profile:v baseline out.mp4 

Wenn Ihr ffmpeg nicht die -c oder -profile Optionen hat, Update auf eine neuere Version.

+0

'-vpre' existiert nicht in einer aktuellen FFmpeg-Version und sollte vermieden werden. Verwenden Sie "-profile: v", um Profile und "-preset slow" usw. für das Kodieren von Presets festzulegen. – slhck

+0

@slhck, danke für den Zeiger. – av501

+0

@ av501 folgenden Befehl funktioniert gut, um MP4-Video mit H.264-Format zu produzieren, aber das Audio funktioniert nicht in IPhone (funktioniert in Android-Handys) ffmpeg -i example.flv -r 25 -sameq -ab 128kb -vcodec libx264 - vpre default -s 320x240 -b 768kb -ar 44100 -acodec kopiere output.mp4 und wenn ich acodec = aac benutze, ffmpeg zeige mir folgende Meldung "encoder 'aac' ist experimentell und könnte zu schlechten Ergebnissen führen. '-strict experimental' hinzufügen wenn du es benutzen willst. " –

-2

Die Magie Schlüsselwort Sie suchen, ist „Frames pro Sekunde“.

Hinzufügen und "-r 30" für 30 fps im Video-Ausgang zum Beispiel.

Sebastian

+0

Ich war immer Fehler pts nach Filter Kein pts Wert von Demuxer für Rahmen verwenden FEHLT!,?% 0 0 pts nach Filter Kein pts Wert von Demuxer für Rahmen verwenden FEHLT!,?% 0 0 pts nach Filter FEHLT Keine pts Wert von Demuxer zu für den Rahmen verwenden!,?% 0 0 –

+0

habe ich -r 30 in meinem Kommando :: ffmpeg -i example.flv -r 30 -sameq -vcodec libx264 -vpre Standard -ar 22050 ausgegeben. h264 aber das Ergebnis würde sich nicht ändern, Video läuft immer noch schnell vorwärts –

+0

hast du mit -r 10 versucht? –