一.部署服务器端

centos (阿里云服务器系统)
1.sudo yum install git
2.git clone https://github.com/phoboslab/jsmpeg.git
3.wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
4.source ~/.nvm/nvm.sh
5.nvm use node
6.npm i -g http-server

7.cd jsmpeg
8.npm install ws #注意这里没有-g
9.node websocket-relay 123 #后台运行 nohup node websocket-relay 123 &
10.http-server #后台运行 nohup http-server &

目前暂时还没时间搞定ffmpeg的安卓版本编译安装。但实现连接在这里:https://blog.csdn.net/u014418171/article/details/53337759
所以快速版本使用linux进行ffmpeg推流摄像头。

1.首先下载linuxmint-17.3-xfce-32bit.iso 。下载地址自行百度。 也可以安装其他版本的linux。自己保证ffmpeg编译通过就行。非本版本的linux编译ffmpeg问题,本人无力解决。
2.将其用Universal-USB-Installer-1.9.8.0.exe 制作成linux安装盘。
3.打开工业主机的bios,设置成u盘启动,插入该u盘。执行linux系统安装。
4.下载ffmpeg-3.4.2 并解压。进入解压后的目录。
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
#然后执行sudo apt-get install yasm 先安装yasm
cd ffmpeg
apt-get install build-essential
./configure
./configure --enable-shared --disable-yasm --prefix=/usr/local/ffmpeg
make
sudo make install
测试。 输入ffmpeg 显示有version表示安装成功

5.到https://github.com/phoboslab/jsmpeg 下载jsmpeg。这是h5播放推流视频用的。详见https://segmentfault.com/a/1190000000392586
git clone https://github.com/phoboslab/jsmpeg.git
6.现在需要安装node 和 ws来运行jsmpeg。请按照这个链接 https://blog.csdn.net/gaomengwang/article/details/77540429 完成node 和npm的安装。
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
之后需要激活nvm:
$ source ~/.nvm/nvm.sh
激活完成后,安装node
nvm install node
安装完成后,切换到该版本
nvm use node
7.安装完nodejs和npm后。先安装npm i -g http-server
8.安卓websocket 转到jsmpeg /目录 cd jsmpeg/ 安装Node.js Websocket库: npm install -g ws

====启动测试

1.进入jsmpeg
node websocket-relay 123 其中123是你的密码
2.输入http-server 启动web服务
3.你电脑的浏览器输入 http://192.168.0.124:8080/view-stream.html 这里就是等下播放h5视频的默认链接地址。其中 前面的ip是你实际的该linux工业主机ip地址。
4.现在输入ffmpeg -re -i “aa.mp4” -f mpegts -codec:v mpeg1video -s 640x480 -b:v 150k -r 30 -bf 0 -ac 1 -b:a 128k http://192.168.0.116:8081/123
来快速测试 音频推流。 前提是你的当前目录下有aa.mp4这个文件。成功的话,应该能够在浏览器的该页面中看到画面。
5.推流摄像头数据
rtmp://114.55.36.228/live/DZJ001_1
ffmpeg -f video4linux2 -framerate 25 -video_size 640x480 -i /dev/video0 -f mpegts -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 http://192.168.0.124:8081/123

成功的话也可以在浏览器看到该画面。 结合音频输入推流,还没有做测试,请自己百度如何使用ffmpeg推流音频和视频。

关于推流地址的分配,123只是推流的密码。如果你要使用非默认的推流地址 请注意推流的时候
ffmpeg -re -i “aa.mp4” -f mpegts -codec:v mpeg1video -s 640x480 -b:v 150k -r 30 -bf 0 -ac 1 -b:a 128k http://192.168.0.116:8081/123/abc/MAC_1
这时候,需要修改view_stream.html的内容为var url = ‘ws://’+document.location.hostname+’:8082/abc/MAC_1’; 或者你可以用传参的方式令这个页面动态播放视频。本人没有深入扩展。

ffmpeg -re -i “aa.mp4” -f mpegts -codec:v mpeg1video -s 640x480 -b:v 150k -r 30 -bf 0 -ac 1 -b:a 128k http://120.79.88.118:8081/123

app内嵌网页 可参看

     #MainActivity.javapackage com.yijue.hello.mpegplayer;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;public class MainActivity extends AppCompatActivity {private WebView mWebView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init(){setContentView(R.layout.activity_main);//WebViewWebView browser=(WebView)findViewById(R.id.webView);browser.loadUrl("http://192.168.1.142:8080/view-stream.html");//设置可自由缩放网页browser.getSettings().setSupportZoom(true);browser.getSettings().setBuiltInZoomControls(true);// 如果页面中链接,如果希望点击链接继续在当前browser中响应,// 而不是新开Android的系统browser中响应该链接,必须覆盖webview的WebViewClient对象browser.setWebViewClient(new WebViewClient() {public boolean shouldOverrideUrlLoading(WebView view, String url){//  重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边view.loadUrl(url);return true;}});//启用支持javascriptWebSettings settings = browser.getSettings();settings.setJavaScriptEnabled(true);//        webView.setWebChromeClient(new WebChromeClient() {//            @Override//            public void onProgressChanged(WebView view, int newProgress) {//                // TODO Auto-generated method stub//                if (newProgress == 100) {//                    // 网页加载完成////                } else {//                    // 加载中////                }////            }//        });//WebView加载web资源//        webView.loadUrl("https://www.baidu.com/");//        webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开//        webView.setWebViewClient(new WebViewClient(){//            @Override//            public boolean shouldOverrideUrlLoading(WebView view, String url) {//                // TODO Auto-generated method stub//                //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器//                view.loadUrl(url);//                return true;//            }//        });}}

#activity_main.xml

    <?xml version="1.0" encoding="utf-8"?><WebView  xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/webView"android:layout_width="fill_parent"android:layout_height="fill_parent"/>

ubuntu
1.自带 ffmpeg
sudo curl -L https://npmjs.org/install.sh | sh
2.sudo apt install nodejs
sudo apt install nodejs-legacy
3.sudo apt install aptitude
4.sudo aptitude install npm
5.sudo npm i -g http-server
6.sudo npm install -g ws

sudo npm install -g n
sudo n latest

H5推流解决方案测试环境搭建指南相关推荐

  1. 《网络安全测试实验室搭建指南》—第1章1.2节硬件要求

    本节书摘来自异步社区<网络安全测试实验室搭建指南>一书中的第1章1.2节硬件要求,作者[美]Michael Gregg(迈克尔 格雷格),更多章节内容可以访问云栖社区"异步社区& ...

  2. 微信局域网测试环境搭建方法

    微信局域网测试环境搭建方法 微信现在越来越火,很多人想自己研究一下微信开发,但在开发平台认证的时候,必须通过80端口认证. 很多的宽带服务商把公司宽带的80端口封了, 而微信开发模式中服务器配置要求填 ...

  3. linux下guide编译不了,全志R16编译环境搭建指南,全志R16_Tina SDK Quick Start Guide

    2. Tina SDK 目录结构 ├── tina │ ├── abi │ ├── app │ ├── bionic │ ├── build │ ├── device │ │ ├── softwinn ...

  4. 弱网测试环境搭建:针对视频直播等实时音视频应用

    弱网测试环境搭建:针对视频直播等实时音视频应用 什么是弱网环境? 对于弱网的定义,不同的应用对弱网的定义是有一定的差别的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分.按照移动的特性 ...

  5. 【教程】Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南

    Windows下Miniconda+Pytorch+Pycharm开发环境搭建指南 给本科生写的新手教程,遇到很多新手的共性问题,可供大家参考.在开始阅读之前,请注意两个要关键:1.为什么要使用Con ...

  6. web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总

    一.Web测试环境搭建 软硬件包括:电脑一台.JDK1.6.Tomcat7.0.mysql.IE浏览器.Firefox浏览器.Chrome浏览器.SVN客户端 通过SVN客户端导出最新的Web工程部署 ...

  7. Celery简介及Docker测试环境搭建

    Celery 简介 任务队列一般用于线程或计算机之间分配工作的一种机制. 任务队列的输入是一个称为任务的工作单元,有专门的工作进行不断的监视任务队列,进行执行新的任务工作. Celery 通过消息机制 ...

  8. 微信开发——本地测试环境搭建

    版权声明:欢迎转载,请注明沉默王二原创. https://blog.csdn.net/qing_gee/article/details/52858939 微信开发的本地测试环境搭建起来颇为繁琐(对微信 ...

  9. Activiti Workflow HelloWorld 示例与测试环境搭建

    作者:Rock 出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell Activiti Workflow HelloWo ...

最新文章

  1. Lotus Notes应用经验谈
  2. elementui树形复选框_Element-ui表格树形控件结合复选框实践
  3. codeforces 711B - Chris and Magic Square(矩阵0位置填数)
  4. VMWare虚拟机NAT模式下static IP
  5. 带撤销贪心——cf1148F好题
  6. 二级c语言考试改卷标准,计算机二级C语言笔试试卷
  7. COJ0700 数学(一)
  8. 人与人之间需要最基本的信任
  9. 20200610每日一句
  10. 竞品分析2020——铁路售票系统
  11. 产品原型图设计Axure教程-CSDN就业班-专题视频课程
  12. 小米 android 7.0下载地址,小米5安卓7.0公测版固件下载地址 仅限开发版
  13. 电路串联和并联图解_蓄电池串联与并联方式图解
  14. stm32cubeide 汉化包_经过两天瞎折腾,分享下STM32CUBE IDE的用法
  15. 三角网导线平差实例_导线平差自动计算表(非常实用)
  16. iexplore.exe - Application Error The instruction at 0x7c0c5a6c references at memory at 0x7c0c5a6c
  17. mysql本机地址_mysql连接时用的IP地址是不是电脑本机上的IP地址呢!
  18. 高斯滤波/高斯模糊(Gaussian blur)和高斯噪声(Gaussian noise)
  19. 关于模型的评估指标(超详细)
  20. 晋丰佳创:抖音短视频里的版面内容复杂吗?这样设计的原因是什么

热门文章

  1. 排序学习-必读论文-AMiner
  2. 微信小程序踩坑之wxml中有内容,但是页面上不显示
  3. 人工智能是怎么用在人脸识别上的?
  4. 技术管理条线度量报告
  5. PHP中获取字符串的长度
  6. 170929 逆向-Reversing.kr(Ransomware)
  7. java jp2launcher.exe_atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o
  8. Vulkan规范笔记(一) 第一章至第六章
  9. axure8.1 授权码
  10. python seo cms_「SEO帝国」 SEO中讲的 CMS是什么意思