Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将MP4帧流式传输到HTML5,我做错了什么?_C#_Html_Ffmpeg_Video Streaming_Mp4 - Fatal编程技术网

C# 将MP4帧流式传输到HTML5,我做错了什么?

C# 将MP4帧流式传输到HTML5,我做错了什么?,c#,html,ffmpeg,video-streaming,mp4,C#,Html,Ffmpeg,Video Streaming,Mp4,目前,我正在使用Intel的Media SDK库生成MP4比特流,该库在封面下使用ffmpeg。我可以生成一个mp4文件,并播放它,它的作品 然而,当我试图通过网络传输mp4时,它不会在HTML5视频播放器中播放,正如在Chrome、Firefox或IE中测试的那样 这些信息通过网络来回发送: Sent by Chrome: GET / HTTP/1.1 Host: localhost:8085 Connection: keep-alive User-Agent: Mozilla/5.0 (Wi

目前,我正在使用Intel的Media SDK库生成MP4比特流,该库在封面下使用ffmpeg。我可以生成一个mp4文件,并播放它,它的作品

然而,当我试图通过网络传输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
在这之后,我发送一条新行和所有的视频帧,一个接一个,一边听,看看是否从浏览器收到任何回复


然后什么也没发生。有什么建议可以播放这个视频吗?谢谢大家!

在尝试将HTML5视频流式传输到iPad上很多天后,我意识到WCF返回0作为返回范围字节长度的问题(
0-xxxxxx
xxxxxx-yyyyyyyy
0-
等)


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

您是从现有流还是从文件流?如果它是一个实时流,那么我也有同样的挣扎——一个从ffmpeg生成的MP4连续流(来自IP摄像头流),并且发现我无法通过HTML5客户端连接到正在运行的MP4HTTP流。这是因为,虽然HTTP头是正确的(我使用Node.js,代码对流文件工作正常),但客户端没有干净地连接到流,也没有收到正确的MP4头和容器字节。续。。您还需要调整moov原子,以使moov原子为空,并将关键帧设置为碎片(ffmpeg movflags frag_keyframe+empty_moov)。如果您正在对文件进行流式处理,这会更容易,但您需要将moov atom移动到文件的开头,以便查找工作。很高兴知道,谢谢。。有人知道是否有办法从API而不是命令行启用frag_keyframe之类的东西吗?我看到您是从文件流式传输的,如果有,ffmpeg命令行选项与实时流式传输不同(我使用ffmpeg分段将文件分割成更小的文件,这样可以在录制完成之前对录制进行流式处理)。下面是我的工作应用程序的要点,其中显示了ffmpeg命令行、node.js HTTP流式处理服务器(您需要C#中的等效文件)和HTML5客户端。