2014-02-10 36 views
0

目前我正在使用英特尔的媒体SDK库生成MP4比特流,该库使用底下的ffmpeg。我可以生成一个mp4文件,并播放它,它的工作原理。将MP4帧流式传输到HTML5,我做错了什么?

但是,当我尝试通过网络传输mp4时,它不会在HTML5视频播放器中播放,如Chrome,Firefox或IE中所测试的。

有一点是可以来回发送跨网络:

Sent by Chrome: 
GET/HTTP/1.1 
Host: localhost:8085 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.102 Safari/537.36 
Accept-Encoding: identity;q=1, *;q=0 
Accept: */* 
Accept-Language: en-US,en;q=0.8 
Range: bytes=0- 

From my video player: 
HTTP/1.1 200 OK 
Server: Microsoft-HTTPAPI/2.0 
Date: Thu, 09 Jan 2014 17:28:14 GMT 
Content-type: video/mp4 

在此之后,我送一个换行符,和所有的视频帧,一个接一个,一边听,看看我得到了什么回来从浏览器。

然后没有任何反应。任何建议来获得这个播放视频?谢谢!

+0

您是从一个文件流式传输现有的流或流?如果它是一个直播流,那么我也有同样的挣扎 - 从ffmpeg(从IP摄像机流)生成的MP4连续流,并发现我无法使用HTML5客户端连接到正在运行的mp4 http流。这是因为尽管HTTP头是正确的(我使用Node.js,并且代码对于流式文件工作正常),但客户端并未干净地连接到流并且没有收到正确的MP4头和容器字节。 – deandob

+1

cont ..您还需要调整moov原子,以便moov原子为空,并将关键帧设置为碎片(ffmpeg movflags frag_keyframe + empty_moov)。如果您正在流式传输文件,则更容易,但您需要将moov原子移动到文件的开头,以便寻找作品。 – deandob

+0

很高兴知道,谢谢..任何人都知道是否有方法从API而不是命令行启用类似frag_keyframe的东西? – mczarnek

回答

-1

后上试图流HTML5视频到一个iPad很多天,我认WCF的返回零作为长度返回范围字节(0-xxxxxxxxxxxx-yyyyyyy0-等)的问题。

我最终通过在C#中使用IKVM来解决此问题,并使用Java套接字来传输数据。这也使您有机会使用WCF所要求的没有端口号的PC /服务器IP地址(例如192.1.1.3/myvideo.html)。