Ich versuche eine Web-App (mit Primefaces) zu bauen, die Echtzeit-Video auf einer HTML-Seite streamt. Das Video wird mit einem HDMI-zu-IP-Encoder (TBS2603) aufgenommen, der den Stream an HTTP ausgibt. Das Video ist Show auf der Seite mit:ffmpeg Codierung für HTML
<embed type="application/x-vlc-plugin" name="video" autoplay="yes" width="1024" height="768" target="http://myip:8080/hdmi" />
aber das Video zeigt, nicht auf der Seite mit <video>
-Tag. Da ich auf mobilen Geräten streamen möchte und <video>
streamen muss. Daher muss ich den Stream mit ffmpeg (nicht ffserver - wie es in zukünftigen Releases veraltet sein wird) transcodieren und auf Tomcat in einem anderen Kontext publizieren, der das Auflisten erlaubt.
I 3-Streams auf 3 Dateien erschaffe (ogg/mp4/WebM)
MP4
ffmpeg -i http://ip:8080/hdmi -vcodec libx264 -b:v 8192k -f segment -segment_time 4 -segment_list_size 0 -segment_list test.m3u8 -segment_format mpegts stream%05d.ts
OGG
ffmpeg -i http://ip:8080/hdmi -acodec vorbis -vcodec libtheora test.ogg
WEBM
ffmpeg -i http://ip:8080/hdmi -vcodec libvpx -acodec libvorbis test.webm
Die Ströme werden auf JSF geladen:
<video width="640" height="480" controls="controls">
<source src="#{testBean.video1}" type="video/mp4"/>
<source src="#{testBean.video2}" type="video/ogg" />
<source src="#{testBean.video3}" type="video/webm" />
Your browser does not support the video tag.
</video>
Auf diese Weise ich die Ausgabe von den codierten Dateien erhalten - wie kann ich den Echtzeit-Stream aus dem Encoder bekommen?