3
回答
directshow 视频网络传输问题
终于搞明白,存储TCO原来是这样算的>>>   

刚开始研究网络视频技术,google,百度了很多关于DirectShow做网络播放器的文章,一直不太理解。

例如说mp3从服务端传到客服端播放过程:

服务端:mp3文件分割->通过rtp发送--------------------->客户端:rtp接收->mp3解码->wave rendering

有几个问题:1)mp3怎么分割,是将mp3二进制流分割,还是一个mp3文件分割成多个可以单独播放的mp3?

                    2)如果是分割二进制流,那么mp3对mp3文件的分割的片段如何解码?

 

 

举报
jlmpp
发帖于6年前 3回/1K+阅

以下是问题补充:

  • @jlmpp :另外对于多媒体传输,多媒体流(stream)的最小单位是多少?即采集端采集多少sec才打包进行发送?这个是否有标准?或者说以什么样的码率进行采样多少帧才进行编码是否有标准? (6年前)
  • @jlmpp :mpeg4频视文件与mpeg4视频压缩流有什么区别? (6年前)
共有3个答案 最后回答: 6年前

晕死. 简单的mp3, 为什么还要使用RTP呢? 只要数据到解码端就行, 没有什么一定的标准.
写一个简单的source filter, 把mp3数据从服务器拉下来, 一边拉, 一边投递给下游解码filter就行了...
现在的mp3编码一般是以1152个采样为一帧为单位的, 你硬要一帧一帧的发, 那也没有问题, mpg123之类或ffmpeg里面的libavformat都可以demux.

首先流媒体也好,网络视频也好,跟DirectShow没有必然的联系。无论你通过HTTP发送,还是RTSP(RTP)发送,其实都是一样的。RTSP的好处是自带一些媒体播放相关的功能,比如播放,暂停,你用HTTP的话这些功能这得你自己在客户端实现了。

一般来说发送媒体文件都是直接将binary分割发送,但是有的媒体封装形式,一些封装信息,比如时间总长度,总帧数是些在文件末尾的,假如直接按段将文件发送,就可能有问题。所以你需要在网络协议里加上特殊的字段指定这些信息,或者你的客户端有一定的容错性。

MPEG4的标准很复杂,MP4 DivX H264都属于MPEG4,你可以自己去看他的规范,例如不同的Profile和Level都指定了码率和分辨率的上下限,但实际上人们遵守的并不严格。MPEG-TS是专门为流媒体设计的,它主要用在电视媒体上,主要是多了些时间戳的信息,互联网上用的不多。

引用来自“浪客Dandy”的答案

首先流媒体也好,网络视频也好,跟DirectShow没有必然的联系。无论你通过HTTP发送,还是RTSP(RTP)发送,其实都是一样的。RTSP的好处是自带一些媒体播放相关的功能,比如播放,暂停,你用HTTP的话这些功能这得你自己在客户端实现了。

一般来说发送媒体文件都是直接将binary分割发送,但是有的媒体封装形式,一些封装信息,比如时间总长度,总帧数是些在文件末尾的,假如直接按段将文件发送,就可能有问题。所以你需要在网络协议里加上特殊的字段指定这些信息,或者你的客户端有一定的容错性。

MPEG4的标准很复杂,MP4 DivX H264都属于MPEG4,你可以自己去看他的规范,例如不同的Profile和Level都指定了码率和分辨率的上下限,但实际上人们遵守的并不严格。MPEG-TS是专门为流媒体设计的,它主要用在电视媒体上,主要是多了些时间戳的信息,互联网上用的不多。

今天试了一下MP3,的确可以直接将binary分割播放。
--- 共有 1 条评论 ---
jlmpp不知道什么样的视频文件可以不经处理,如此render出来。 6年前 回复
顶部