基于node.js 的 websocket的移动端H5直播开发
这一篇介绍一下基于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直播开发的更多相关文章
- 基于node.js的websocket上传小功能
		一.node.js 在目录里新建index.js var ws = require("nodejs-websocket"); console.log("开始建立连接... ... 
- 基于node.js的websocket 前后端交互小功能
		一.node var ws = require("nodejs-websocket"); console.log("开始建立连接...") var server ... 
- 基于Node.js + WebSocket 的简易聊天室
		代码地址如下:http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.js ... 
- 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具
		认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ... 
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
		Pomelo:网易开源基于 Node.js 的游戏服务端框架 https://github.com/NetEase/pomelo/wiki/Home-in-Chinese 
- Windows下Node.js+Express+WebSocket 安装配置
		Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ... 
- 基于Node.js的实时推送 juggernaut
		基于Node.js的实时推送 juggernaut Juggernaut 基于 Node.js 构建.为浏览器和服务器端提供一个实时的连接,可在客户端和服务器端进行数据的实时推送,适合多角色游戏.聊天 ... 
- 《基于Node.js实现简易聊天室系列之详细设计》
		一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次 ... 
- LIGHTX-CMS —— 基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客系统
		概述 LIGHTX-CMS 是我基于 Node.js,Express.js 以及 SQLite 3 搭建的个人博客发布系统. 项目本身可以拿来部署个人博客网站,同时我认为其也适合用以新手学习 Node ... 
随机推荐
- 微众银行Java面试-社招-一面(2019/07)
			个人情况 2017年毕业,普通本科,计算机科学与技术专业,毕业后在一个二三线小城市从事Java开发,2年Java开发经验.做过分布式开发,没有高并发的处理经验,平时做To G的项目居多.写下面经是希望 ... 
- 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 ... 
- javascript submit() is not a function
			<script> window.onload = function(){ document.getElementById('form').submit(); } </script&g ... 
- 详解CI、CD相关概念
			CI:持续集成(CONTINUOUS INTEGRATION)基本概念CI的全称是Continuous Integration,表示持续集成. 在CI环境中,开发人员将会频繁地向主干提交代码.这些新提 ... 
- OpenSSL的证书, 私钥和签名请求(CSRs)
			概述 OpenSSL是一个多用途的工具, 适用于涉及Public Key Infrastructure(PKI), HTTPS(HTTP over TLS)的用途. 这份文档提供关于OpenSSL命令 ... 
- nginx-rtmp
			最近使用ffmpeg推流为rtmp,进行直播.记录一下nginx-rtmp的配置.因为我们要添加ngin-rtmp模块,所以不能直接apt安装. 下载niginx和nginx-rtmp-module的 ... 
- ISO/IEC 9899:2011 附录C——顺序点
			附录C——顺序点 1.以下是在5.1.2.3中所描述的顺序点(sequence point): ——在一个函数调用中的函数指示符(function designator)和实际参数的计算,与实际调用之 ... 
- linux列出当前目录下的所有的目录?
			### 列出当前目录下的所有目录: [root@localhost ~]# ls -ld * #列出所有的文件 drwxr-xr-x. root root Nov : elasticsearch d ... 
- Python3基础 list dict set 均为unhashable type
			Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ... 
- 事务管理(ACID)和事务的隔离级别
			https://blog.csdn.net/dengjili/article/details/82468576 谈到事务一般都是以下四点 原子性(Atomicity)原子性是指事务是一个不可分割的工作 ... 
