【发布时间】:2014-06-14 11:12:44
【问题描述】:
我有点不知所措。
我想将直播视频流式传输到网络浏览器。
目前,我使用 ffmpeg 将 directshow 实时源作为 webm 流传输到 node.js,然后将流转发到来自 <video> 元素的 http 请求。到目前为止一切正常。
live source -> ffmpeg -> POST [webm] -> node.js -> GET [webm] -> video 标签
我的问题是源时钟和网络客户端时钟不完全匹配(并不奇怪)。对于视频来说,这不是问题,不时丢失或复制一帧并不明显。但是,对于音频,这是另一个问题。据我目前所知,Chrome(或任何其他浏览器)不会执行任何形式的音频重采样补偿(例如来自 ffmpeg 的swr_set_compensation)来补偿这种不匹配。相反,当播放缓冲区的样本用完时,我会听到相当明显的音频失真(响亮的哔哔声)。
我的问题是是否可以在网络浏览器中正确播放(使用音频)实时源?
我还没有尝试使用 silverlight 或 flash 进行播放。这可能会更好吗?
【问题讨论】:
标签: javascript html video-streaming html5-video html5-audio