相关疑难解决方法(0)

实时HTTP流式传输到HTML5视频客户端的最佳方法

我真的很难理解使用node.js将ffmpeg的实时输出流式传输到HTML5客户端的最佳方法,因为有很多变量在起作用,我在这个领域没有很多经验,花了很多时间尝试不同的组合.

我的用例是:

1)IP视频摄像机RTSP H.264流由FFMPEG拾取并使用节点中的以下FFMPEG设置重新转换为mp4容器,输出到STDOUT.这仅在初始客户端连接上运行,因此部分内容请求不会再次尝试生成FFMPEG.

liveFFMPEG = child_process.spawn("ffmpeg", [
                "-i", "rtsp://admin:12345@192.168.1.234:554" , "-vcodec", "copy", "-f",
                "mp4", "-reset_timestamps", "1", "-movflags", "frag_keyframe+empty_moov", 
                "-"   // output to stdout
                ],  {detached: false});
Run Code Online (Sandbox Code Playgroud)

2)我使用节点http服务器捕获STDOUT并在客户端请求时将其流回客户端.当客户端第一次连接时,我生成上面的FFMPEG命令行,然后将STDOUT流传递给HTTP响应.

liveFFMPEG.stdout.pipe(resp);
Run Code Online (Sandbox Code Playgroud)

我还使用了流事件将FFMPEG数据写入HTTP响应,但没有任何区别

xliveFFMPEG.stdout.on("data",function(data) {
        resp.write(data);
}
Run Code Online (Sandbox Code Playgroud)

我使用以下HTTP标头(在流式传输预先录制的文件时也使用并工作)

var total = 999999999         // fake a large file
var partialstart = 0
var partialend = total - 1

if (range !== undefined) {
    var parts = range.replace(/bytes=/, "").split("-"); 
    var partialstart = parts[0]; 
    var partialend = parts[1];
} 

var start = parseInt(partialstart, 10); 
var end …
Run Code Online (Sandbox Code Playgroud)

streaming html5 ffmpeg node.js

204
推荐指数
5
解决办法
19万
查看次数

通过nodejs server + socket.io从mp3文件同步流式传输音乐

所以我的服务器上有一个mp3文件.

我希望所有访问该网址的客户都能同步收听该音乐.

那是.

让我们说文件播放6分钟.

我在上午10点开始播放这首歌

上午10:03发出的请求应该从歌曲的第3分钟开始收听.

我的所有客户都应该同步收听这首歌.

我如何使用nodejs和socket.io实现这一目标

javascript streaming websocket node.js socket.io

8
推荐指数
1
解决办法
6664
查看次数

标签 统计

node.js ×2

streaming ×2

ffmpeg ×1

html5 ×1

javascript ×1

socket.io ×1

websocket ×1