这一篇介绍一下基于node.js 的 websocket的移动端H5直播开发,

下载文章底部的源码,我是用vscode打开,

首先在第一个终端运行 npm run http-server 这个指令是运行http服务,手机端直接运行http://ip:8000/mpegts.html 即可看到推流过来的视频

新起一个终端运行 npm run ws-server,服务启动后,即可以通过ffmpeg进行推流。

推流过程如下:

推流视频文件:

ffmpeg -re -i E:\2.mp4    -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0   -codec:a mp2 -ar 44100 -ac 1 -b:a 128k  -f mpegts    tcp://localhost:8081

推流摄像头流:

ffmpeg -f dshow -i video="Integrated Camera" -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0 -f  mpegts tcp://localhost:8081

桌面流:

ffmpeg -f gdigrab -framerate 1 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop  -codec:v mpeg1video -s 640x1236 -b:v 3000k -r 30 -bf 0   -f mpegts  tcp://localhost:8081

这里8081 就是ws-Server接收推流的端口, 而8082 是websocket的端口,httpserver的网页就是通过8082进行数据传输。

以上步骤完成,在手机端即可以看到低延时的视频文件。

顺便说一下mse:

源码里也有对应的页面播放mse视频流,但是mse的移动端兼容性太差

fmpeg格式的ffmpeg推送如下:

摄像头:

ffmpeg -f dshow -i video="Integrated Camera" -c:v libx264 -vb 448k -vsync 2 -pix_fmt yuv420p -profile:v
high -f mp4 -movflags frag_keyframe+default_base_moof -reset_timestamps 1 -frag_duration 70000

tcp://localhost:8081

桌面:

ffmpeg -f gdigrab -framerate 1 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop -c:v libx264 -vb
448k -vsync 2 -pix_fmt yuv420p -profile:v high -f mp4 -movflags frag_keyframe+default_base_moof -

reset_timestamps 1 -frag_duration 70000 tcp://localhost:8081

文件流:

ffmpeg.exe -re -i E:\2.mp4 -vcodec copy -acodec copy -pix_fmt yuv420p -f mp4 -movflags frag_keyframe
+default_base_moof -reset_timestamps 1 -frag_duration 70000 tcp://localhost:8081/

源码下载

基于node.js 的 websocket的移动端H5直播开发的更多相关文章

  1. 基于node.js的websocket上传小功能

    一.node.js 在目录里新建index.js var ws = require("nodejs-websocket"); console.log("开始建立连接... ...

  2. 基于node.js的websocket 前后端交互小功能

    一.node var ws = require("nodejs-websocket"); console.log("开始建立连接...") var server ...

  3. 基于Node.js + WebSocket 的简易聊天室

    代码地址如下:http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.js ...

  4. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具

    认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...

  5. Pomelo:网易开源基于 Node.js 的游戏服务端框架

    Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese

  6. Windows下Node.js+Express+WebSocket 安装配置

    Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...

  7. 基于Node.js的实时推送 juggernaut

    基于Node.js的实时推送 juggernaut Juggernaut 基于 Node.js 构建.为浏览器和服务器端提供一个实时的连接,可在客户端和服务器端进行数据的实时推送,适合多角色游戏.聊天 ...

  8. 《基于Node.js实现简易聊天室系列之详细设计》

    一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次 ...

  9. LIGHTX-CMS —— 基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客系统

    概述 LIGHTX-CMS 是我基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客发布系统. 项目本身可以拿来部署个人博客网站,同时我认为其也适合用以新手学习 Node ...

随机推荐

  1. 微众银行Java面试-社招-一面(2019/07)

    个人情况 2017年毕业,普通本科,计算机科学与技术专业,毕业后在一个二三线小城市从事Java开发,2年Java开发经验.做过分布式开发,没有高并发的处理经验,平时做To G的项目居多.写下面经是希望 ...

  2. Multi-Agent Reinforcement Learning Based Frame Sampling for Effective Untrimmed Video Recognition

    Multi-Agent Reinforcement Learning Based Frame Sampling for Effective Untrimmed Video Recognition IC ...

  3. javascript submit() is not a function

    <script> window.onload = function(){ document.getElementById('form').submit(); } </script&g ...

  4. 详解CI、CD相关概念

    CI:持续集成(CONTINUOUS INTEGRATION)基本概念CI的全称是Continuous Integration,表示持续集成. 在CI环境中,开发人员将会频繁地向主干提交代码.这些新提 ...

  5. OpenSSL的证书, 私钥和签名请求(CSRs)

    概述 OpenSSL是一个多用途的工具, 适用于涉及Public Key Infrastructure(PKI), HTTPS(HTTP over TLS)的用途. 这份文档提供关于OpenSSL命令 ...

  6. nginx-rtmp

    最近使用ffmpeg推流为rtmp,进行直播.记录一下nginx-rtmp的配置.因为我们要添加ngin-rtmp模块,所以不能直接apt安装. 下载niginx和nginx-rtmp-module的 ...

  7. ISO/IEC 9899:2011 附录C——顺序点

    附录C——顺序点 1.以下是在5.1.2.3中所描述的顺序点(sequence point): ——在一个函数调用中的函数指示符(function designator)和实际参数的计算,与实际调用之 ...

  8. linux列出当前目录下的所有的目录?

    ###  列出当前目录下的所有目录: [root@localhost ~]# ls -ld * #列出所有的文件 drwxr-xr-x. root root Nov : elasticsearch d ...

  9. Python3基础 list dict set 均为unhashable type

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  10. 事务管理(ACID)和事务的隔离级别

    https://blog.csdn.net/dengjili/article/details/82468576 谈到事务一般都是以下四点 原子性(Atomicity)原子性是指事务是一个不可分割的工作 ...