zoukankan      html  css  js  c++  java
  • 基于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/

    源码下载

  • 相关阅读:
    WPF Window对象的生命周期
    MVC 控制器中传递dynamic(对象) 给视图
    MVC 获取路由的 URL 参数值和默认值的集合。
    mvc路由配置.html结尾的伪静态
    javascript 模拟按键点击提交
    微信小程序调用接口返回数据或提交数据
    清理电脑文件夹中的Thumbs.db文件
    asp.net动态增加服务器端控件并提交表单
    c# asp.net 实现分页(pager)功能
    注册时发短信如何防止别人恶意调用短信接口
  • 原文地址:https://www.cnblogs.com/wanglg/p/11555994.html
Copyright © 2011-2022 走看看