2016-07-11 12 views
0

Ich möchte Live-Stream mit HTTP Live Streaming, aber ich habe ein Problem mit libx264 oder vielleicht etwas anderes.libx264 schlägt auf HTTP Live Streaming (FFmpeg)

Meine Hardware und Software-Umgebung:

  • Macbook Pro
  • VirtualBox mit Ubuntu 16.04
  • Nginx und FFmpeg (in Ubuntu)

Ich bin in der Lage eine statische Video-Datei zu streamen (in Ubuntu mit Nginx und FFmpeg). Der FFmpeg Befehl lautet wie folgt:

$ffmpeg -i /my/sample/video.mp4 -codec:v libx264 -f hls /output/file.m3u8 

Aber wenn es um Webcam (Live-Streaming) kommt, nicht Mac OS Safari den Stream zu öffnen. Ich benutzte den folgenden Befehl ein:

$ffmpeg -i /dev/video0 -codec:v libx264 -f hls /output/file.m3u8 

Ich denke, es das Problem der libx264 ist, weil, wenn ich mpeg2video Encoder verwenden, Mac OS Safari in der Tat den Stream spielen kann:

$ffmpeg -i /dev/video0 -codec:v mpeg2video -f hls /output/file.m3u8 

Ich weiß, es gibt eine Bibliothek mit dem Namen video4linux2, sollte ich video4linux2 zum Aufnehmen meiner Webcam verwenden? Aber ich kenne nicht den entsprechenden FFmpeg Befehl für HTTP Live Streaming (ich versuchte FFserver, aber es ist ein Fehler so etwas wie cannot rename hls)

jemand etwas Licht auf mein Problem?

Antwort

1

Ich habe es herausgefunden!

Der Grund, warum Mac OS Safari ein HTTP Live Streaming nicht öffnen kann, das von libx264 kodiert wird, liegt daran, dass der Standardcodec in Mac OS die Standardausgabe von libx264 nicht unterstützt!

Fügen Sie einfach -pix_fmt yuv420p zum FFmpeg Befehl und alles funktioniert:

$ffmpeg -f video4linux2 -i /your/webcam/path -codec:v libx264 -pix_fmt yuv420p /output/file.m3u8