Mp4 mit ffmpeg streamen

16

Ich muss einen Feed mit zwei Streams erstellen - webm und mp4 -, damit er auf allen HTML5-Videoplayern kompatibel ist. Der Webm Stream funktioniert einwandfrei. Beim Versuch, auf den MP4-Stream zuzugreifen, gibt der Server jedoch den folgenden Fehler aus:

Sat Mar  9 23:21:54 2013 muxer does not support non seekable output

Hier ist der Teil der Datei ffserver.conf, der sich mit dem mp4-Stream befasst:

<Stream channel1.mp4>       # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format mp4

   # Audio settings
   AudioCodec libmp3lame
   AudioBitRate 64             # Audio bitrate

   # Video settings
   VideoCodec libx264
   VideoSize 560x320           # Video resolution
   VideoFrameRate 25           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   AVOptionVideo cpu-used 0
   AVOptionVideo qmin 10
   AVOptionVideo qmax 42
   AVOptionVideo quality good
   AVOptionAudio flags +global_header
   PreRoll 15
   StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

Nach dem, was ich finden kann, sagen einige Leute, dass mp4 einfach nicht gestreamt werden kann. Ich habe keinen Anhang zu mp4, außer der Tatsache, dass ich den Eindruck hatte, dass Sie mp4 benötigen, um Videos mit einem HTML5-Videoplayer auf das iPhone zu streamen. Wenn dies nicht der Fall ist, lassen Sie es mich wissen und ich werde gerne zu etwas wechseln, das mit ffmpeg-Streaming besser funktioniert.

Fibericon
quelle
3
Sie müssen MP4 nicht wirklich streamen . Für HTML5-H.264 / MP4-Videos sollte es ausreichen, die Videodatei mit zu kodieren -movflags faststartoder zu behandeln qt-faststartund dann auf die MP4-Datei im <video>Tag zu verweisen . Ihr Server benötigt dann ein H.264-Streaming-Modul , damit der Client suchen kann. Oder hast du Live-Input?
Slhck
Mein Client verlangt, dass dies Streaming ist - er möchte die Client-Suche vollständig deaktivieren. Es wird von einer Datei gestreamt (die Datei auf dem Server hat das Format webm, sofern dies einen Unterschied macht). Ich kann die Steuerelemente nicht einfach ausblenden, da iPhones das Anzeigen von Steuerelementen erzwingen.
Fibericon
@slhck: Ich streame eine Live-Webcam mit mp4, kann das aber nicht. Es funktioniert, wenn ich flv benutze. Kann ich mp4 für das Live-Streaming verwenden?
John Qualis
@ JohnQualis Nicht sicher, ob es mit ffserver machbar ist. Aber der Container sollte eigentlich keine Rolle spielen - die Codecs sind bei FLV und MP4 (H.264 und AAC) gleich.
Slhck
@sklhck: Ich habe es geschafft, mit flv unter Verwendung von ffserver zu arbeiten, aber nicht mit mp4. Die meisten Webbrowser unterstützen mp4. Ich brauche etwas, das auf dem iPhone, Android und allen bekannten Webbrowsern funktioniert und dass es h264 ist :) Und ich streame eine Webcam live
John Qualis

Antworten:

6

Der Artikel HTML 5 und iPad-freundliches Video von Ihrer eigenen Website , der zuletzt am 12. November 2014 aktualisiert wurde, enthält folgende Informationen:

Bild

Der Artikel empfiehlt die Verwendung von MP4 als eine gute Lösung mit einer ausreichend aktuellen Version von ffmpeg unter Verwendung der H.264-Codierung mit AAC.

Ich empfehle, den Artikel unter Berücksichtigung der Details zu lesen: Er enthält eine Beispiel-HTML-Datei, die auf allen gängigen Browsern funktioniert, sowie einen Beispiel-FFmpeg-Befehl, der zum Konvertieren von Videos in MP4-Dateien verwendet wird, damit diese korrekt gestreamt werden.

Harrymc
quelle
handelt es sich um "Live" -Streaming?
Markus Siebeneicher
@MarkusSiebeneicher: Ja, meistens.
Harrymc
Ich habe immer noch Probleme, mp4 mit ffmpeg "live" zu streamen, da es nicht "suchbar" zu sein scheint. Ich leite die ffmpeg-Ausgabe direkt an den Browser weiter, mit webm funktioniert es sofort. Wenn ich das mp4-Format verwende, sagt es, dass es nicht suchbar ist ... Also frage ich mich wirklich, was ich tun soll, um mp4 "live" streambar zu machen, wo kein Video direkt als Datei gespeichert wird (was es suchbar machen würde).
Markus Siebeneicher
@MarkusSiebeneicher: Ich schlage vor, diese Frage in einem neuen Beitrag mit Details zu stellen.
Harrymc