使用VLC将mp4流媒体传输到HTML浏览器

24

我在将我的网络摄像头图片(无声)流式传输到html页面时遇到了问题。我正在使用最新的(v2.0.2 vlc for windows)进行流媒体传输,以下是命令行:

"c:\Program Files (x86)\VideoLAN\VLC\vlc.exe" -I dummy  dshow:// --dshow-vdev="Logitech QuickCam Chat" --dshow-adev=none --dshow-caching=0 --sout=#transcode{vcodec=h264,vb=1024,channels=1,ab=128,samplerate=44100,width=320}:http{mux=ts,dst=:8080/webcam.mp4} 

当我在另一个VLC播放器中打开流(http://127.0.0.1:8080/webcam.mp4)时,我可以看到流,但是当我尝试将其嵌入网页时,什么也看不到!这是代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Video Test</title>
  </head>
  <body>
    <video id="video" class="projekktor" autoplay="autoplay" width="300px" preload="metadata">  
      <source src="http://127.0.0.1:8080/webcam.mp4" />
            Your browser doesn't appear to support the HTML5 <code>&lt;video&gt;</code> element.  
    </video>
  </body>
</html>

我尝试在浏览器中打开它,像这样:

file:///C:/videostreaming/video.html

我在Chrome示例中看到的是有网络流量,数据正在下载,但没有显示任何内容。

你解决了这个问题吗?我也遇到了类似的问题,很想知道你是如何解决的。 - crashwap
@cssyphus 没有,但如果您能回答,请不要忘记回答这个问题。 :) - balazs
@balazs 我遇到了完全相同的问题,但我在这个页面上没有找到答案。有任何进展吗? - AlanObject
4个回答

19

使用VLC不能通过HTTP协议传输mp4文件。

点击以下链接可查看输出方法/复用器矩阵: http://www.videolan.org/streaming-features.html

但你可以尝试将其转码为ogg格式。

请尝试以下操作:

"c:\Program Files (x86)\VideoLAN\VLC\vlc.exe" \
-I dummy  dshow:// --dshow-vdev="Logitech QuickCam Chat" \
--dshow-adev=none --dshow-caching=0 \
--sout=#transcode{vcodec=theo,vb=1024,channels=1,ab=128,samplerate=44100,width=320}:http{dst=:8080/webcam.ogg}

并且在您的 HTML 视频标签中:

<source src="http://127.0.0.1:8080/webcam.ogg"/>

能否提供一个 RTMP 流到 -I 输入而不是网络摄像头? - astralmaster

3

尝试添加视频类型(type="video/mp4"):

<video width="320" height="240" controls="controls">
      <source src="movie.mp4" type="video/mp4" />
      <source src="movie.ogg" type="video/ogg" />
      Your browser does not support the video tag.
    </video>

2
不幸的是,它没有帮助。 - balazs
1
如果那不起作用,您可以尝试将其转换为ogg视频。VLC也可以这样做,并且它支持HTML5视频。 - Entrabiter
从我的Chrome浏览器来看,我的文件似乎是以application/octet-stream的形式传输的。我认为除非将其视为video/mp4格式,否则它不会显示出来。您可以进入VLC的高级首选项,在HTML流选项中将MIME类型设置为video/mp4。 - Entrabiter
将MIME类型设置为video/mp4并不能解决问题。当我使用Theora(video/ogg)进行流媒体传输时,MIME类型也是application/octet-stream,并且可以正常工作。但我想要流式传输mp4格式。 - balazs

1

对于直播流,您应该使用以下内容

<video id="video" src="http://localhost:8181/stream" type="video/ogg; codecs=theora" autoplay="autoplay"/>

更多内容请访问链接

请注意:仅支持视频类型为“ogg”!


1

你正在告诉VLC在TS格式下进行流媒体传输,mux=ts 这就是问题所在,你需要以mp4格式进行传输。


1
mp4不是mux的有效选项(http://www.videolan.org/doc/streaming-howto/en/ch03.html)。 - Adorjan Princz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接