Kopierte FLV-Dateien mit FFMPEG lassen sich in keinem Programm außer VLC öffnen
2806
danronmoon
Ich versuche, einer von YouTube abgerufenen FLV-Datei ein Overlay hinzuzufügen. Die Eingabedatei ist 4,4 MB und kann von QuickTime abgespielt werden, so dass anscheinend keine Probleme auftreten.
Jetzt kann output.flv von QuickTime nicht wiedergegeben werden, und Flash beschwert sich darüber, dass der Audio-Codec nicht unterstützt wird. Das einzige Programm, das es erfolgreich spielen kann, ist VLC. Die Dateigröße entspricht der von input.flv. Was könnte die Ursache sein und welche Optionen könnten eine spielbare Kopie erzeugen?
AKTUALISIEREN
Abgeschnittene Ausgabe, die von verschiedenen Encodern empfangen wurde:
Das Abrufen der Informationen zu einer dieser Dateien führt zu einer Vielzahl der folgenden Arten von Fehlern (wobei n eine zunehmende ganze Zahl ist):
- Stream discovered after head already parsed - header damaged - max_analyze_duration 5000000 reached at 5014000 microseconds - Could not find codec parameters for stream n (Video: mpeg4, yuv420p): unspecified size Consider increasing the value for the 'analyzeduration' and 'probesize' options - decoding for stream n failed
Ich habe gerade ffmpeg und seine Abhängigkeiten über MacPorts aufgerüstet und habe immer noch Pech. Dies geschieht für jede FLV-Datei, die ich von YouTube und anderswo ausprobiert habe.
1 Antwort auf die Frage
5
slhck
Flash-Video
Entsprechend der Spezifikation unterstützt Flash Video unter anderem nur nativ VP-6 und H.264-Video. Das bedeutet, dass Sie sich an FFmpegs flvEncoder halten müssen, oder Sie wechseln mit dem libx264Encoder zu H.264. Die Optionen, die Sie verwenden können, finden Sie in der x264-Encoding-Anleitung :
ffmpeg -i input.flv … -c:v libx264 output.flv
Sie können daher die MPEG-4 Part 2-Encoder nicht verwenden mpeg4oder libxvid, da sie nur von libavformat-basierten Playern unterstützt werden, die alles umfassen, von Android-Handys bis hin zu VLC, natürlich nicht in QuickTime.
Schnelle Zeit
Wie für QuickTime wird FLV nicht offiziell unterstützt . Leider kann man davon ausgehen, dass QuickTime nicht alle Dateien abspielen kann. Durch die Installation von Perian (jetzt EOL) sollten einige FLV-Dateien abgespielt werden, jedoch nicht alle.
Wie die Spezifikation voraussagt, habe ich nur FLV-Dateien mit dem flvEncoder, wie er in genannt wird ffmpeg, abgespielt, der Sorenson Spark H.263-Codec und der libx264Encoder.
Audio
FLV unterstützt sowohl MP3 als auch AAC. Daher weiß ich nicht, was mit Flash los ist und sich über einen ungültigen Codec beschwert. Vielleicht möchten Sie einen AAC-Encoder ausprobieren:
"-c: v mpeg4" liefert ähnliche Ergebnisse. "-c: v libxvid" benötigt eine realistischere Zeit für die Verarbeitung, erzeugt jedoch keine abspielbare Ausgabe. Selbst ein direkter Kopierbefehl `ffmpeg -i input.flv -c: v copy -c: eine Kopie output.flv` ohne Filter funktioniert leider nicht.
danronmoon vor 11 Jahren
0
Bitte kürzen Sie nicht die Ausgabe der anderen Befehle. Wenn es für den Fragenkörper zu lang ist, fügen Sie ihn [in ein Pasteboard] (http://paste.ubuntu.com/) ein. Dadurch wird es einfacher, Probleme zu erkennen. Hast du vielleicht eine Probe? Spielt die Datei zB in VLC?
slhck vor 11 Jahren
0
Die abgeschnittene Ausgabe für die letzten 3 war die gleiche wie die erste vollständige Ausgabe ganz oben (eine Reihe von Metadaten für die Originaldatei). OK, ich muss zugeben, dass mein ursprünglicher Befehl (wie auch output3.flv, danke dafür) mit VLC funktioniert, aber nicht mit irgendetwas anderem (Flash sagt, Audiocodec wird nicht unterstützt). Dies ist eine gute Nachricht, aber ich denke, es ist vernünftig, die Wiedergabe in anderen Videoplayern zu erwarten, daher formuliere ich die Frage neu.
danronmoon vor 11 Jahren
0
Scheint ein bisschen schwierig zu sein. Mit QuickTime müssen Sie, zumindest gemäß meinen Tests, die offiziell unterstützten FLV-Videocodecs verwenden. Bisher war es noch nicht möglich, einen MPEG-4 Part 2-Videostream in einem FLV-Container von YouTube zu finden - anscheinend bekomme ich nur entweder H.264- oder Sorenson-H.263-kodierte.
slhck vor 11 Jahren
0
"-c: a aac" führt dazu, dass ffmpeg hängt, und ich muss ein neues Terminal schließen und öffnen. Mit -c: Ein MP3-Gerät erzeugt immer noch eine mit QT nicht abspielbare Datei. Die youtube-ID, auf der diese Frage basiert, lautet rNp-cj5dEA8. Wenn Sie mir eine YT-ID und den dazugehörigen Befehl geben könnten (Original und Kopie, die von QT spielbar sind), könnte ich es ausprobieren und sehen, ob es auf meinem Rechner funktioniert. Übrigens, welche Art von ffmpeg-Build hast du? Ich denke, ich müsste ein Downgrade oder eine Neuinstallation durchführen.
danronmoon vor 11 Jahren
0
Für die Video-ID, die Sie mir gegeben haben, bekomme ich nur zwei mögliche FLV-Optionen (basierend auf dem, was "youtube-dl" zeigt), [eine mit H.264-Video im Inneren und eine mit Sorenson H.263] (http: // paste.). ubuntu.com/5859174/). Beide sind in QuickTime spielbar. Ich bekomme keine MPEG-4-Version. Verwenden Sie möglicherweise einen anderen YouTube-Downloaddienst, der eine Transkodierung durchführt? Ich habe gerade das "normale" `ffmpeg -i input.flv output.flv` ausprobiert und es ist in QuickTime abspielbar. Sowohl auf neuestem `ffmpeg` als auch auf Git. 1.2.1.
slhck vor 11 Jahren
0
I've been using MacTubes to test #5. I just installed youtube-dl and downloaded #5 and I noticed that the filesize and resolution were different from the one I downloaded from MacTubes, and that the video encoder is flv1, the same as what you had. Even more mind-boggling is the fact that I can't get the file downloaded from youtube-dl to play in QT. So I think the issue is getting too localized, and with all the discrepancies I've been encountering I think the sane route is to sing VLC's praises and focus on other tasks. Thanks for your help.
danronmoon vor 11 Jahren
0
Sicher. Ping mich im Chat oder hier, wenn du etwas überprüfen musst. Es tut mir leid, dass ich Ihnen nicht mehr helfen konnte, aber hier scheinen viele Faktoren im Spiel zu sein.
slhck vor 11 Jahren
0