有没有办法从服务器流式传输和播放视频文件?
黑莓是否提供任何可以播放流媒体视频的内置视频播放器?
我正在读取包含一系列可变长度描述符的字节流,我在代码中将其表示为各种结构/类.每个描述符都有一个与所有其他描述符相同的固定长度头,用于标识其类型.
是否有适当的模型或模式可以用来最好地解析和表示每个描述符,然后根据它的类型执行适当的操作?
我有一个Intranet托管的Web应用程序,用户将上传一个包含5列空格分隔数据的文本文件.我不想保存文件,所以我想在内存中使用它.我在网上尝试了许多不同的例子,但都没有.最后,一位同事告诉我如何做到这一点.这是代码,我想知道是否有更好的方法来做到这一点.最后,我想要的是一种将数据链接到gridview或转发器以便查看和以后存储到数据库(SQL Server)的方法.
上传文件asp标签ID是SurveyFileUpload
SurveyDate是一个asp:输入字段
Int32 fileLen = SurveyFileUpload.PostedFile.ContentLength;
// Create a byte array to hold the contents of the file.
Byte[] buffer = new Byte[fileLen];
// Initialize the stream to read the uploaded file.
Stream s = SurveyFileUpload.FileContent;
// Read the file into the byte array.
s.Read(buffer, 0, fileLen);
// Convert byte array into characters.
ASCIIEncoding enc = new ASCIIEncoding();
string str = enc.GetString(buffer);
testReadFile(str, db_surveyDate.Text);
protected void testReadFile(string inFileString, string inSurveyDate)
{
string[] lines = inFileString.Split('\n');
curFileListing.InnerHtml = ""; …Run Code Online (Sandbox Code Playgroud) 我在我的网站上有一个avi视频,我希望我的用户应用程序可以在流媒体中看到它.我能怎么做?谢谢
默认stream_get_contents等待并听60秒.如果我有多个流,并希望不断听取所有流.
在foreach里面,如果我正在听一个流,我不能听其他人.
什么是连续监听和捕获所有流的流输出的解决方案?
while(true){
//$streamArray is an array of streams obtained by stream_socket_client("tcp://..);
foreach($streamArray as $stream){
fputs($stream,$command);
stream_get_contents($stream); // and update file/DB (Blocking call)
}
}
Run Code Online (Sandbox Code Playgroud)
注意:对于我已经完成的每一个流 stream_set_blocking( $stream , true );
更新:
我的要求是在30分钟内听一下所有的流.同时我不能听2流.如果我有5个流,我的代码只是time division multiplexing,在30 分钟内,每个单独的流将仅记录6分钟
我有一个解决方案,可以为各个流提供AJAX请求并独立记录.当然我不想做这个多AJAX调用方法,因为它会导致更多的代码以及更多的CPU.
我正在尝试v4l2src使用GStreamer 流式传输UDP.发送部分(显然)没问题,但接收部分丢失了一些东西.
这些是实际的:
发送:
gst-launch-0.10 -v gstrtpbin name=rtpbin v4l2src device=/dev/video0 ! 'video/x-raw-yuv, width=(int)320, height=(int)240, framerate=(fraction)15/1' ! rtpvrawpay ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! multiudpsink clients="127.0.0.1:9996" rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:9997" sync=false async=false udpsrc port=10000 ! rtpbin.recv_rtcp_sink_0
接收:
gst-launch-0.10 -v gstrtpbin name=rtpbin udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string)YUV, depth=(string)8, width=(string)320, height=(string)120, colorimetry=(string)SMPTE240M" port=9996 ! rtpbin.recv_rtp_sink_0 rtpbin. ! rtpvrawdepay ! video/x-raw-yuv,framerate=15/1 ! xvimagesink udpsrc port=9997 ! rtpbin.recv_rtcp_sink_0 rtpbin.send_rtcp_src_0 ! multiudpsink clients="127.0.0.1:10000" sync=false async=false
我错过了什么?
问候
编辑:
有些帽子丢失了,所以我添加了它们,现在接收器不会崩溃但只是闲置而没有显示任何东西.
发送:
gst-launch-0.10 -v gstrtpbin name=rtpbin v4l2src …
当新文档被另一个应用程序插入到集合中时,我正在尝试设置MongooseJS来推出整个集合(或者只是最新的项目).
我假设QueryStream是要走的路.
但是,当我启动我的简单应用程序时,它会读出一次该集合并关闭它.
当我插入新文档时没有任何反应(假设连接不再打开并寻找新结果......?)
var Orders = db.model('orders', OrderSchema);
var stream = Orders.find().stream();
stream.on('data', function(doc){
console.log('New item!');
console.log(doc);
}).on('error', function (error){
console.log(error);
}).on('close', function () {
console.log('closed');
});
Run Code Online (Sandbox Code Playgroud)
立即打印当前订单集合中的所有项目,然后打印"已关闭".当集合发生变化时,"Stream"是否应该保持打开状态以打印新数据?
我对此不了解什么MongooseJS QueryStream?
PS.我的目标是最终emit通过socket.io这里演示的更新集合:Mongoose stream第一次返回少量结果
我需要流式处理纹理(本质上是摄影机提要)。
使用对象流,似乎会出现以下情况:
以下是我遇到的以下方法:
分配对象数据存储(用于缓冲区的BufferData或用于纹理的TexImage2D),然后分配每个帧,使用BufferSubData或TexSubImage2D更新数据子集
在使用该对象的最后一次调用(例如绘制)之后,使对象无效/无效:
使用新数据简单地重新调用BufferData或TexImage2D
手动实现对象多缓冲/缓冲ping-ponging。
最直接的问题是,整个纹理被相同大小的新纹理替换。我该如何实施?(1)是否会隐式同步?(2)是否避免同步?(3)是否将同步对象或将为该对象分配新的数据存储,以便可以在不等待使用旧对象状态完成的所有绘图完成的情况下将更新上传到该对象?相信来自Red Book V4.3的这段话是这样的:
也可以使用glCopyBufferSubData()函数在缓冲区对象之间复制数据。不必使用glBufferSubData()在一个大的缓冲区对象中组装数据块,而是可以使用glBufferData()将数据上传到单独的缓冲区中,然后使用glCopyBufferSubData()将这些数据复制到较大的缓冲区中。根据OpenGL的实现,它可能能够重叠这些副本,因为每次您对缓冲区对象调用glBufferData()时,它会使之前可能存在的任何内容失效。因此,即使从前一个存储进行的复制操作尚未完成,OpenGL有时也可以为您的数据分配一个新的数据存储。然后,它将在以后的机会中释放旧存储。
但是如果是这样,为什么需要(2)[无效/无效]?
另外,请牢记以下问题,同时讨论上述方法以及其他方法,以及它们在各种情况下的有效性:
我已经阅读了http://www.opengl.org/wiki/Buffer_Object_Streaming,但是它没有提供明确的信息。
我正在尝试使用FFprobe来测试流链接是否处于活动状态.
例如,这是一个有效的流媒体链接:
ffprobe -loglevel quiet -show_streams rtmp://Lrmh0w.cloud.influxis.com/yoy/_definst_/185
Run Code Online (Sandbox Code Playgroud)
我得到输出意味着链接是活跃的.
但是,一旦我将链接更改为无效的链接:
ffprobe -loglevel quiet -show_streams rtmp://Lrmh0w.cloud.influxis.com/yoy/_definst_/18555555555
Run Code Online (Sandbox Code Playgroud)
该命令在后台运行,没有结果.
有没有办法绕过这个,还是有任何ffprobe超时参数?我从官方网站文档中找不到它.
来自Akka文档,流水线和并行性
默认情况下,将Akka Streams处理阶段(即Flow和Source或图形结点上的简单运算符)“融合”在一起,并按顺序执行。这避免了跨越异步边界的事件的开销,但将流程限制为在任何给定时间最多执行一个阶段。
跨越异步边界的事件是什么意思?
在《两个莫妮克斯流的传说》和相应的幻灯片中也经常使用相同的术语
streaming ×10
akka ×1
android ×1
asp.net ×1
asynchronous ×1
blackberry ×1
buffer ×1
c# ×1
descriptor ×1
ffmpeg ×1
ffprobe ×1
file-upload ×1
gstreamer ×1
header ×1
linq ×1
linux ×1
mongodb ×1
mongoose ×1
node.js ×1
opengl ×1
parsing ×1
php ×1
sockets ×1
stream ×1
structure ×1
textures ×1
udp ×1
video ×1