标签: streaming

如何使用JAXB Marshaller流式传输大型文件?

我面临的问题是如何将一大堆对象编组到一个XML文件中,如此之大,我无法一步完成整个列表的编组.我有一个方法以块的形式返回这些对象,但随后我使用JAXB编组它们,marshaller返回一个例外,即这些对象不是根元素.对于您希望在一个步骤中编组完整文档的正常情况,这是正常的,但如果我将JAXB_FRAGMENT属性设置为true,也会发生这种情况.

这是所需的XML输出:

<rootElem>  
    <startDescription></startDescription>  
    <repeatingElem></repeatingElem>
    <repeatingElem></repeatingElem>...
</rootElem>
Run Code Online (Sandbox Code Playgroud)

所以我假设我需要某种类型的侦听器来动态加载下一块重复元素,以便在编写rootElement的结束标记之前将其提供给编组器.但是怎么做呢?到目前为止,我只使用JAXB来编组小文件,而JAXB文档没有给出该用例的大量提示.

java streaming jaxb

20
推荐指数
3
解决办法
2万
查看次数

如何从网址播放流媒体音频/视频?

我是Android新手.我使用的是android os 2.2.我正在尝试从网址播放流媒体音频和视频.我不知道该怎么做.在googling 3天后,我开始知道我必须使用mediaPlayer和MediaController类.

我曾在互联网上使用不同的不同组合代码,但没有成功.

任何人都可以指导我如何处理流式音频/视频播放.如果我们使用MediaPlayer或Controller类,UI会怎样?在布局的xml文件中有没有相关的东西.

如果没有,那么请告诉我可能是什么代码.

请帮我.

streaming android media-player

20
推荐指数
2
解决办法
6万
查看次数

使用BLOB VS OS文件系统的MySQL二进制存储:大文件,大批量,大问题

我正在运行的版本(基本上是最新的):
PHP:5.3.1
MySQL:5.1.41
Apache:2.2.14
OS:CentOS(最新)

情况就是这样.

我有数千个非常重要的文件,从客户合同到语音签名(合同的客户授权记录),文件类型包括但不限于jpg,gif,png,tiff,doc,docx,xl​​s,wav,mp3 ,pdf等

所有这些文档目前都存储在多个服务器上,包括Windows 32位,CentOS和Mac等.有些文件也存储在员工台式计算机和笔记本电脑上,有些文件仍然是存储在数百个盒子和文件柜中的硬拷贝.

现在因为客户或律师可以随时要求合同证明,我公司必须能够有效地搜索和找到正确的文件,因此所有这些文件都必须数字化(如果还没有)并且相关进入某种搜索和访问的顺序.

作为程序员,我创建了一个完整的客户关系管理工具,供整个公司使用.这包括客户资料管理,订单和工作跟踪工具,工作/销售创建和管理模块等,以及目前客户资料级别(驾驶执照,信用授权等)或工作中所需的任何文件/销售级别(合同,语音签名等)可以上传到服务器并位于父/子层次结构中,就像Windows资源管理器或任何其他典型的文件管理模型一样.

结构如下:

drivers_license
| - DL_123.jpg
voice_signatures
| - VS_123.wav
| - VS_4567.wav
合同

因此,文件使用PHP和Apache进行上传,并存储在操作系统的文件系统中.在上载时,关于文件的某些信息存储在MySQL数据库中.存储的一些信息是:

表:FileUploads
FileID
CustomerID(文件所属的客户ID,它们都有此.)
JobID/SaleID(相关作业/销售的ID,如果有)
.FileSize
FileType
UploadedDateTime
UploadedBy
FilePath(文件的目录路径是存储在.)
FileName(上传文件的当前文件名,CustomerID和JobID/SaleID的组合,如果适用.)
FileDescription
OriginalFileName(上载时源文件的原始名称,包括扩展名.)

如您所见,文件通过文件名链接到数据库.当我想提供客户的文件下载给用户时,我所要做的就是"SELECT*FROM FileUploads WHERE CustomerID = 123 OR JobID = 2345;" 这将输出我需要的所有文件详细信息,并且使用FilePath和FileName,我可以提供下载链接.

http ... server/FilePath/FileName

这种方法存在许多问题:

  1. 在"数据库无意识"环境中存储文件意味着不保留数据完整性.如果删除了记录,则也可能不会删除该文件,反之亦然.
  2. 文件遍布整个地方,不同的服务器,计算机等.
  3. 文件名是唯一匹配二进制文件到数据库和客户配置文件和客户记录的东西.

有很多原因,其中一些在这里描述:http://www.dreamwerx.net/site/article01.此外,这里也有一篇有趣的文章:sietch.net/ViewNewsItem.aspx?NewsItemID=124.

因此,经过大量研究后,我几乎已经决定将所有这些文件存储在数据库中,如BLOB或LONGBLOB,但在我这样做之前还有很多注意事项.

我知道将它们存储在数据库中是一个可行的选择,但是有许多方法可以存储它们.我也知道存放它们是一回事; 以可管理的方式关联和访问它们完全是另一回事.

此链接提供的文章:dreamwerx.net/site/article01描述了一种将上传的二进制文件拆分为64kb块并使用FileID存储每个块,然后使用标头将实际二进制文件流式传输到客户端的方法.这是一个非常酷的主意,因为它减轻了对服务器内存的预感; 而不是将整个100mb文件加载到RAM然后将其发送到客户端,它一次只做64kb.我已经尝试了这个(并更新了他的脚本),这在一个非常小的测试框架中是完全成功的.

因此,如果您同意这种方法是一个可行的,稳定的和强大的长期选项来存储适度大的文件(1kb到几百megs),以及大量的这些文件,请告诉我您有哪些其他注意事项或想法.

此外,我正在考虑获取当前的"文件管理"PHP脚本,该脚本提供了一个界面,用于管理存储在文件系统中的文件,并将其转换为管理存储在数据库中的文件.如果已经有任何软件可以做到这一点,请告诉我.

我想我可以提出很多问题,并且所有信息都在那里^^所以请讨论这方面的所有方面,我们可以来回传递想法并相互教授.

干杯,

Quantico773

php mysql streaming blob http-headers

20
推荐指数
1
解决办法
2万
查看次数

尽管设置了分块流模式,HttpURLConnection缓冲而不是流式传输?

我正在使用HttpURLConnection向服务器写入文件,其中一些文件很大.

final HttpURLConnection conn = (HttpURLConnection) url.openConnection();
Run Code Online (Sandbox Code Playgroud)

前一阵子我写了1 GB或更多的对象.我通过将其设置为流更易管理的块大小来修复它.

final int bufferSize = 1024 * 1024;
[...]
conn.setChunkedStreamingMode(bufferSize);
Run Code Online (Sandbox Code Playgroud)

它在我的笔记本电脑上运行良好,但在其他机器上却崩溃了.经过调查,我发现原因是在写入输出流时发生了内存不足错误.

final OutputStream out = conn.getOutputStream();
final long bytesWritten = IOUtils.copyLarge(in, out);
Run Code Online (Sandbox Code Playgroud)

在copyLarge例程中,我发现它能够执行262145次4096字节的迭代,当它试图越过1 GB行时失败.为java应用程序分配更多内存似乎可以防止这些崩溃,但我认为这应该是不必要的.如果它正在写1 MB的块,那么它应该失败,迭代次数少得多,或者反复写1 MB而没有问题.

更新:结果显示在某些机器上实际上没有调用ChunkedStreamingMode的行设置.如果您没有设置固定/分块流模式,HttpURLConnection只会将所有内容发送到PosterOutputStream/ByteArrayOutputStream.

java streaming out-of-memory httpurlconnection http-chunked

20
推荐指数
0
解决办法
4417
查看次数

解释计数草图算法

有人可以解释计数草图算法的工作原理吗?例如,我仍然无法弄清楚如何使用哈希.我很难理解这篇论文.

algorithm streaming frequency-analysis

20
推荐指数
2
解决办法
1万
查看次数

我可以使用AVFoundation将下载的视频帧流式传输到OpenGL ES纹理中吗?

我已经能够使用AVFoundation的AVAssetReader类将视频帧上传到OpenGL ES纹理中.但是,它有一个警告,因为当它与AVURLAsset指向远程媒体一起使用时会失败.这个失败没有很好的记录,我想知道是否有任何解决方法的缺点.

streaming opengl-es objective-c avfoundation ios

20
推荐指数
1
解决办法
8930
查看次数

Web Audio API:如何播放MP3块

因此,我正在尝试Web Audio API使用Node.js和Socket.IO解码和播放流式传输到浏览器的MP3文件块.

我的问题是我唯一的选择是AudioBufferSourceNode为每个接收到的音频数据块创建一个新的,还是可以为所有块创建一个AudioBufferSourceNode,只需将新的音频数据附加到源节点AudioBufferSourceNode属性的末尾?

目前,我正在接收我的MP3块,解码并安排它们进行播放.我已经验证了收到的每个块都是一个"有效的MP3块",并且正在被Web Audio API成功解码.

audioContext = new AudioContext();
startTime = 0;

socket.on('chunk_received', function(chunk) {
    audioContext.decodeAudioData(toArrayBuffer(data.audio), function(buffer) {
        var source = audioContext.createBufferSource();
        source.buffer = buffer;
        source.connect(audioContext.destination);

        source.start(startTime);
        startTime += buffer.duration;
    });
});
Run Code Online (Sandbox Code Playgroud)

任何有关如何使用新音频数据"更新"Web音频API播放的建议或见解将不胜感激.

html javascript audio streaming web-audio-api

20
推荐指数
2
解决办法
9440
查看次数

Android Lollipop上的MediaRecorder问题

我正在测试新的Android Lollipop上的libstreaming,这个代码在之前的版本中运行,似乎启动了异常.

    try {
        mMediaRecorder = new MediaRecorder();
        mMediaRecorder.setCamera(mCamera);

        mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
        mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mMediaRecorder.setVideoEncoder(mVideoEncoder);
        mMediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface());
        mMediaRecorder.setVideoSize(mRequestedQuality.resX,mRequestedQuality.resY);


        mMediaRecorder.setVideoFrameRate(mRequestedQuality.framerate);

        // The bandwidth actually consumed is often above what was requested 

        mMediaRecorder.setVideoEncodingBitRate((int)(mRequestedQuality.bitrate*0.8));

        // We write the ouput of the camera in a local socket instead of a file !           
        // This one little trick makes streaming feasible quiet simply: data from the camera
        // can then be manipulated at the other end of the socket

        mMediaRecorder.setOutputFile(mSender.getFileDescriptor());

        mMediaRecorder.prepare();
        mMediaRecorder.start();

    } catch (Exception e) …
Run Code Online (Sandbox Code Playgroud)

streaming android exception mediarecorder

20
推荐指数
1
解决办法
1万
查看次数

akka stream toMat

我试图了解在akka流媒体中做什么.例如:

val sink1:Sink[Int, Future[Int]]=Sink.fold[Int,Int](0)(_ + _)

val flow=Flow[Int].fold[Int](0){(x,y)=> x+y}

val runnable = Source (1 to 10).viaMat(flow)(Keep.right).toMat(sink1)(Keep.both)
Run Code Online (Sandbox Code Playgroud)
  1. 什么是使用viaMat vs via?
  2. 什么是toMat在viaMat到toMat之间做什么?
  3. 什么是keep.both的用途,是否意味着我可以从之前和当前的一个实现价值,如果是,那么我如何能够获得这些价值.

谢谢阿伦

streaming scala akka akka-stream

20
推荐指数
1
解决办法
4527
查看次数

使用高质量视频流开发视频聊天应用程序

我正在为一家公司工作,我们正在为现有应用程序开发视频聊天支持.我已经看过各种各样的解决方案了

  1. 使用Managed Direct节目在C#中进行视频捕获和流式传输
  2. 在代码项目中的一些代码示例我们拍摄图像并通过网络传递(我称之为粗略的解决方案,因为这会占用大量带宽.
  3. 从头开始编写压缩算法,并使用它来压缩 - 解压缩视频.

现在的挑战是我们希望实现非常高质量的视频流,并且容器应用程序使用C#.NET编码

这是我到目前为止提出的.流数据的网络逻辑用C#编写,视频压缩用VC++编写,并尽可能使用pinvoke或CLI调用VC++ dll.

我正在寻找一个在这个领域更有经验的人,如果我正确的话还是可以改进,我可以建议我.

最终目标是高质量的视频流.编解码器可以是h.2633,h.264等任何东西.

c# video streaming chat

19
推荐指数
2
解决办法
7万
查看次数