一、Mac下搭建推流服务器(Nginx+RTMP+FFMpeg)

安装x264

git clone git://git.videolan.org/x264.git
cd x264
./configure --enable-static --enable-shared
make -j8
sudo make install

安装FFMpeg

git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg ./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libx264 --enable-libmp3lame
make -j8
sudo make install

FFMpeg源码Xcode debug

https://github.com/sfssqs/ffmpeg-xcode

安装Nginx和nginx_rtmp_module插件

git clone https://github.com/nginx/nginx.git
git clone https://github.com/arut/nginx-rtmp-module.git
cd nginx-v.XXX
./configure --add-module=/path/to/nginx-rtmp-module --with-openssl=/path/to/openssl-v.XXX
make -j8
make install

安装VCL

http://get.videolan.org/vlc/3.0.1/macosx/vlc-3.0.1.dmg

配置RTMP Server文件,nginx.conf

rtmp {
server {
# 监听端口
listen ;
chunk_size ; application rtmplive {
live on;
max_connections ;
}
}
}

执行 推流命令播放视频

ffmpeg -re -i ~/Desktop/XXXX.mov -c copy -f flv rtmp://localhost:1935/rtmplive/home

执行 推流命令打开本地摄像头

ffmpeg -f avfoundation -framerate  -video_size 1280x720 -i "0:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar  -ac  -f flv rtmp://localhost:1935/rtmplive/home

执行 播放

ffplay rtmp://localhost:1935/rtmplive/home

VLC File->OpenNetwork

rtmp://localhost:1935/rtmplive/home

nginx

# nginx   // 启动
# nginx -s stop // 关闭
# lsof -i:8080 // 查看端口占用

error,  端口小于1024的需要root权限,要么提权,要么该端口

nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
he socket API bind() to a port less than 1024, such as 80 as your title mentioned, need root access.
here is "Bind to ports less than 1024 without root access"
and another easier way is to run nginx as root.

  

参考:

Android平台RTMP推流:https://www.jianshu.com/p/462e489b7ce0

摄像头相关:https://blog.csdn.net/jeffasd/article/details/71205664

Mac下通过FFMpeg实现Android手机推流和播放的更多相关文章

  1. mac 下真机调试 android 手机

    第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Spreadtru ...

  2. Android直播实现 Android端推流、播放

    最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...

  3. Mac 下用 go 开发Android应用环境设置

    需要的工具 设置代理 请参考:http://www.cnblogs.com/ghj1976/p/5087049.html Mac 下命令行设置代理: export http_proxy=http:// ...

  4. Mac 下配置 Cocos2d-x 3-x android 的环境

    本人初学Cocos2d 3-x,环境配置,搭建android环境弄了好长时间,走了不少弯路,翻阅了好多人的博客和文档,包括官方文档讲的似乎有些似懂非懂,好多依然是旧的版本,所以把我的整个过程梳理一下. ...

  5. Mac下安装appium+python+Android sdk 环境完整流程

    安装大纲:1,安装jdk (jdk1.8及以上版本都可以,尽量不要用最新可能会不兼容) 2,安装android-sdk (mac版本的android-sdk) 3,mumu模拟器 (随便找的一个) 4 ...

  6. [Cocos2d-x]Mac下运行HelloCpp For Android

    2013年12月22日 一.简介: Mac下运行Cocos2d-x的samples和新建的HelloCocos2dx项目 二.内容: 环境: OS:mac OS X 10.9.1 IDE:Androi ...

  7. Mac下cocos2dx-3.0打包Android时,提示"SimpleAudioEngine.h"not found的解决方法

    前段时间触控公布cocos2dx-3.0,在升级之后试过之后,在最初的不习惯之后,感觉比之前的好用了不少,在下之前一直是用xCode模板创建,这回算是一口气升到顶了. 之后再一次编程时须要用到Sima ...

  8. 用mac的chrome浏览器调试Android手机的网页

    一.参考链接 read chrome remote debugging documentation 调出开发者选项 二.设置android 在安卓4.2及更新的版本中,默认情况下,[开发者选项]是隐藏 ...

  9. Mac下命令行下载android源代码并构建apk过程

    前提是java .sdk.ndk .cmake.gradle .gradlew都已经安装和配置好. 1.下载源码: git clone http://git-ma.xxxx.com.cn/xxxx/x ...

随机推荐

  1. 数据处理pandas

    1.缺失值时间戳不为NaN,为NaT, 同样判断都为isna()或notna()方法2.删值\去重 df.dropna() df.drop_duplicates() 3.上下值插值 df.fillna ...

  2. POJ 2976 Dropping tests【0/1分数规划模板】

    传送门:http://poj.org/problem?id=2976 题意:给出组和,去掉对数据,使得的总和除以的总和最大. 思路:0/1分数规划 设,则(其中等于0或1) 开始假设使得上式成立,将从 ...

  3. CMake变量(提供信息的变量)

    目录 CMAKE_VERSION CMAKE_MAJOR_VERSION CMAKE_MINOR_VERSION CMAKE_PATCH_VERSION CMAKE_TWEAK_VERSION CMA ...

  4. JQuery获取当前屏幕的高度宽度的实现代码

    <script type="text/javascript"> $(document).ready(function() { alert($(window).heigh ...

  5. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第一天】

    本人做过一年的MATLAB编程和简单维护过VB和C++的项目.是跟着网上获得的黑马的Java双元视频课来自学入门Java知识和常用框架的使用. 淘淘商城(SpringMVC+Spring+Mybati ...

  6. android studio 修改新建EmptyActivity默认布局

    https://www.jianshu.com/p/d4f201135097 打开你的Android Sudio安装目录,我的为D:\Program Files\Android\Android Stu ...

  7. SpringBoot项目示例

    一.准备工作: 环境及工具:Eclipse+JDK8+Maven+SpringBoot 二.源码: 1.项目架构:                    2.引入pom.xml <project ...

  8. [ZJOI2006]书架(二分+树状数组)

    这题90%以上的人做法为裸的平衡树,实际上根本没必要还常数大,最好的方法是二分+树状数组.具体做法是,开3倍内存,初始把中间n位赋值为1.对于每个操作:1&2.删除该位,将其丢在头/尾(开三倍 ...

  9. 论文:利用深度强化学习模型定位新物体(VISUAL SEMANTIC NAVIGATION USING SCENE PRIORS)

    这是一篇被ICLR 2019 接收的论文.论文讨论了如何利用场景先验知识 (scene priors)来定位一个新场景(novel scene)中未曾见过的物体(unseen objects).举例来 ...

  10. 关于mysql一边查一边更新

    update test_table set user_id = 112 where id in (select id from ( select id from test_table where nu ...