软硬件环境

  • ubuntu 16.04
  • Android Studio 2.1.3
  • OTT BOx with android 5.1.1
  • nginx 1.11.3
  • nginx-rtmp-module
  • vitamio

前言

当下,直播已经成为网络热词,它不单单是指传统广播电视的实时播放,更是更为广泛的音视频实时分享的延伸。早先,app直播商城源码数据源只可能来自于电视台及节目制作中心,但是放眼现在,基于计算机技术的高速发展,任何人都可以独自完成内容的制作,再利用身边的终端设备完成分享,你不仅仅是受众,同样可以成为主角。可以说,时下流行的"网红"文化,app直播商城源码立下了汗马功劳。本文旨在搭建一个最简单的app直播商城源码,包括服务器端及 android 客户端,采用了 nginxnginx-rtmpvitamioffmpeg

rtmp协议

RTMPReal Time Messaging Protocol 的缩写,是被设计用来进行实时数据通信的网络协议。它是一个协议族,包括 rtmpertmptrtmps 等,是app直播商城源码常用的网络协议

服务端配置

nginx添加rtmp支持

下载版本1.11.3,然后下载 nginxrtmp 补丁,下载的文件都放在目录 /home/djstava (请根据实际情况自行修改)下,然后开始源码编译 nginx

tar xvf nginx-1.11.3.tar.gz
cd nginx-1.11.3
mkdir build
./configure --prefix=/home/djstava/nginx-1.11.3/build --add-module=/home/djstava/nginx-rtmp-module
make -f objs/Makefile
make install

如果出现 fallthrough 的错误

需要修改 objs/Makefile,在 CFLAGS 中添加

-Wno-implicit-fallthrough

修改配置文件nginx.conf

编辑 /home/djstava/nginx-1.11.3/build/conf/nginx.conf,在文件末尾添加如下内容

rtmp {server {listen 1935;ping 30s;notify_method get;application myapp {live on;# sample play/publish handlers#on_play http://localhost:8080/on_play;#on_publish http://localhost:8080/on_publish;# sample recorder#recorder rec1 {#    record all;#    record_interval 30s;#    record_path /tmp;#    record_unique on;#}# sample HLS#hls on;#hls_path /tmp/hls;#hls_sync 100ms;}# Video on demand#application vod {#    play /var/Videos;#}# Video on demand over HTTP#application vod_http {#    play http://localhost:8080/vod/;#}}
}

启动nginx服务

执行命令

/home/djstava/nginx-1.11.3/build/sbin/nginx

ffmpeg推送rtmp

找一个本地的视频文件,使用 ffmpeg 进行推送,命令为

ffmpeg -re -i 大话西游之月光宝盒.BD1280超清国粤双语中英双字.mp4 -vcodec libx264 -acodec aac -f flv rtmp://localhost/myapp/mystream

如果app直播商城源码的服务器不在本地的话,将 localhost 替换成对应的 IP 地址

ffplay播放测试

服务启动好后,app直播商城源码就可以进行测试了。如果没有安装 ffplay 的话,也可以用 vlc

ffplay rtmp://localhost/myapp/mystream

后记

前面的步骤都是在本机中进行的。可是在app直播商城源码的实际应用中,情况会复杂的多,nginx 可能是一台服务器,ffmpeg 推流的可能就是另一台服务器,这样的话,可将 localhost 换成对应的 IP 地址。如果数据源来自摄像头,同样可以通过 ffmpeg 进行推送,命令如下

ffmpeg -f dshow -i video="Integrated Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://10.10.10.84/myapp/mystream1

Android客户端播放

之前已经写过一个基于 vitamio 的视频播放器,我们就在它的基础上进行修改,找到 MainActivity.java

private String[] files = {"rtmp demo","apple demo"};

listviewitem 被点击后发送包含播放地址的 intent

Intent intent = new Intent(MainActivity.this, VitamioVideoViewActivity.class);
intent.putExtra("movieUrl", "rtmp://10.10.10.84/myapp/mystream");
startActivity(intent);

如此,一个app直播商城源码简单的直播系统就实现了。

声明:本文由云豹科技转发自迷途小书童的Note博客,如有侵权请联系作者删除

实现app直播商城源码,先从简单的直播系统开始相关推荐

  1. 直播商城源码,商城开发实现商城底部导航栏

    直播商城源码,商城开发实现商城底部导航栏 1.先写布局. 我新建了一个ShoppingActivity,在activity_shopping.xml文件中,写整体布局,代码如下: <?xml v ...

  2. Ios端直播商城源码开发之实现全屏直播功能

    直播商城源码是以直播带货为核心的直播平台,实现了互动连麦.礼物打赏.主播PK.直播评论等直播相关内容,同时还实现了短视频.电商商城.动态广场等功能.今天,我们就直播功能进行分析,看看直播商城源码如何实 ...

  3. 优质的教育直播平台源码是如何进行在线教育系统搭建的

    一般教育培训机构转型线上都是找优质的教育直播平台源码进行在线教育系统搭建的.如何在价格不一的源码市场中,选择优质的教育直播平台源码呢?优质的直播平台源码是如何进行在线教育系统搭建的呢?我们来了解一下. ...

  4. 直播带货行业如何入局?先了解一下直播商城源码吧

    直播行业的爆火已经持续了多个年头,直到今天,在人们的生活中依然有着举足轻重的地位,它通过多元化的方案为许多行业带来了新的思路,特别是与传统商业所结合的"直播电商"."直播 ...

  5. 在线直播php源码,PHP写在线视频直播技术详解

    废话一句,如果你要做高性能服务器服务,请去读底层的东西 http tcp/ip socket 了解基础协议,你对如何建造高性能服务器会有一个深度的了解 目前楼主专注php开发,最直接的方法就是使用ln ...

  6. 在线直播网站源码开发,视频的采集如何实现?

    支撑在线直播网站源码发展的关键就是直播技术的实现,在整个流媒体传输中视频的采集时开始,一般利用到的是设备端的摄像头,我们在实现视频采集时,不仅需要获取摄像头的调用权限,还要获取到视频录制的数据. 我们 ...

  7. 用H5做直播网站源码,如何实现格式推流和播放

    上一篇文章我们讲到,在了解视频流协议HLS与RTMP.明晰目前直播网站源码的主流形式,以及实现直播的简要流程后,我们来继续讲利用Html5实现直播网站源码的剩余步骤. Html5直播网站源码实现录制 ...

  8. 直播间源码,通过Redis实现数据缓存

    需求说明 在直播间源码中,用户查看直播列表,这个列表数据具有时时性,并且是强热点数据,也就是说每时每刻都可能会有新的直播.这些数据如果每次都去数据库读取肯定是不可取的,所以这可以考虑使用redis来实 ...

  9. WoShop多商户直播短视频APP小程序商城全开源无加密商城源码

    WoShop多商户直播短视频APP小程序商城全开源无加密商城源码 基于现场直播+购物模式,用户可以"边看边买"现场直播商城平台,全终端支持,统一管理后台,传播更强,管理更方便,支持 ...

最新文章

  1. html5新年网页做给父母的,2018春节给父母的简短祝福语
  2. 【Android 事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 )
  3. Java 12正式发布,新特性解读!
  4. Spring-AOP底层实现
  5. 大神级的布线,人家攻城狮是如何做到的?
  6. python的编译过程_Python docutils文档编译过程方法解析
  7. 01-BIO通讯模型
  8. Redis Nosql数据库
  9. 腾讯的天天快报凭什么想挑战今日头条?
  10. 基于R语言绘制标准化平均差(Standardized mean difference SMD)可视化图(1)
  11. 三级网络技术--宽带接入技术--XDSL
  12. BZOJ3420: Poi2013 Triumphal arch
  13. QQ推广,QQ在线代码
  14. 各种手机的User-Agent
  15. 自己电脑服务器地址的查询办法
  16. 纤巧精干:爱普生六轴机器人
  17. 计算机游戏动漫制作自我鉴定,动画制作专业毕业生的自我鉴定范文(精选5篇)...
  18. 提升网站流量和排名的方法,SEO优化要这样做
  19. java 排序库_Java数据库排序
  20. 怎么和小伙伴语音连麦,你造吗?

热门文章

  1. it可以拥有的证书含金量和途径
  2. Android Studio 调试技巧大全
  3. 多种数据库连接工具_20多种热门数据工具及其不具备的功能
  4. Matlab数据统计与分析(四)——参数估计
  5. 在Linux中安装JKD(详细教学)
  6. 抽象类DateFormat
  7. python 实现 复制文件 及 复制文件夹
  8. ETL工程师主要工作内容
  9. IT人员必学最基础知识(四)——补充总结
  10. SAP Business One(SAP B1)国家增值税税率变更设置操作指引