钠斯网络 > 行业资讯 >产品技术

Node直播技术开发

发布来源:钠斯网络 发布人:钠斯网络 日期:2021-11-29 17:01:11

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

Node直播技术开发

下载文章底部的源码,我是用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/


下载地址:https://pan.baidu.com/s/1BOEw2KwtgdWSd6ycq6PVTw

提取码:fqtt

欢迎您来咨询湖北app开发公司钠斯网络科技公司,专业软件开发10年多,开发案例有社交app、直播app、电竞app、物联网和人工智能开发。欢迎您来我司实地考察。本文由湖北钠斯网络科技发布,转载请注明:www.nasinet.com

本文地址

在线咨询

在线咨询

微信咨询

微信咨询

微信咨询
咨询热线

0717-6365698

电话咨询

电话咨询

QQ咨询

QQ咨询