1

我有一个 IP 摄像机流式传输 mjpeg。我最初是这样流式传输的:

//JQUERY
    setInterval(function(){
    $("#overView").attr("src", "http://74.105.102.4:9999/cgi-bin/view/image?pro_3?"+new Date().getTime());
},1000);

//HTML
    <img id="overView" class="overView" width="710" height="400" style="" src="http://74.105.102.4:9999/cgi-bin/view/image?pro_3">

这工作正常,但每秒只给我 1 帧,如果我尝试再挤出,它会停止,因为我需要创建一个缓冲区。相机设置的最大速率为 30fps。所以为了获得更多的 FPS,我尝试使用 jQuery 创建一个缓冲区,如下所示:

//JQUERY
var mjpegImg = 'http://74.105.102.4:9999/cgi-bin/view/image?pro_3';

$('#start').attr('disabled', false).toggle(function() {
    $(this).text('Stop');

    $('#buffer').load(function() {
        $('#video').attr('src', this.src);
        this.src = mjpegImg + '?cache=' + new Date().getTime();
    }).trigger('load');
}, function() {
    $(this).text('Start');
    $('#buffer').unbind();
});​

//HTML
<img id="buffer" alt="" />
<img id="video" alt="" />
<button id="start" disabled="disabled">Start</button>​

这种作品,虽然仍然有问题。这是上面脚本的小提琴 http://jsfiddle.net/XgAWJ/2/在流的右上角有一个时间戳,所以你可以知道它是如何移动的。

无论如何我可以使用这种方法挤出更多的FPS吗?15-20fps 将是理想的。摄像头由 15mbs 上传线路托管,对于 mjpeg 来说应该足够了。如果有使用 PHP 的方法,我也不害怕使用 PHP ob_start(),我在这里看到了一个使用它的解决方案http://ben-collins.blogspot.com/2010/06/php-sending-motion-jpeg.html不确定如果这样可以正常工作,我看不到任何地方可以设置时间间隔。

谢谢一群人!

4

0 回答 0