我正在生成一个MJpeg Stream并尝试将其流式传输到VLC并在那里播放.
代码:
public void SendMultiPartData(String contentType, Func<byte[]> getData)
{
MemoryStream mem = null;
response.StatusCode = 200;
for ( byte[] buffer = getData(); buffer != null && buffer.Length > 0; buffer = getData())
{
response.ContentType = "multipart/x-mixed-replace; boundary=--testboundary";
ASCIIEncoding ae = new ASCIIEncoding();
byte[] boundary = ae.GetBytes("\r\n--testboundary\r\nContent-Type: " + contentType + "\r\nContent-Length:" + buffer.Length + "\r\n\r\n");
mem = new MemoryStream(boundary);
mem.WriteTo(response.OutputStream);
mem = new MemoryStream(buffer);
mem.WriteTo(response.OutputStream);
response.OutputStream.Flush();
}
mem.Close();
listener.Close();
}
如果我尝试使用firefox打开流,那么根本没有问题,虽然使用VLC它不起作用(VLC似乎继续阅读但从未显示视频)
我一直在嗅探VLC到VLC流,他们似乎使用HTTP头“application / octet-stream”而不是multipart / x-mixed-replace
有任何想法吗 ?
事先提前,
何塞
解决方法:
何塞,
我有完全相同的问题. Firefox播放我的流,但VLC没有.我通过很多方法来解决这个问题,包括调试VLC源代码,并且没有在哪里.
顺便说一句我的(REST)URL看起来像http://server:port/livevideo/xyz
然后,我想我应该尝试http://server:port/livevideo/xyz.mjpeg
猜猜看,VLC开始播放视频!
我认为VLC可能需要一些提示而不是内容类型,以确定它是一个mjpeg流.
希望这可以帮助.
辛迪
标签:c,http,streaming,vlc,mjpeg 来源: https://codeday.me/bug/20190705/1386487.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。