(推流).
序
在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇)
开发一款直播app,肯定需要流媒体服务器,本篇主要讲解直播中流媒体服务器搭建
,并且讲解了如何利用FFMPEG编码和推流,并且介绍了FFMPEG常见命令。
效果
Snip20161018_20.png
一、安装Homebrew
Homebrew简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件。
1、打开终端, 查看是否已经安装了Homebrew
, 直接终端输入命令
* man命令:manual(手册)的缩写,可以查看某一命令的帮助信息,比如git,brew,顺便可以查看有没有按照这个命令.
man brew
man brew.png
2、 执行命令,安装Homebrew
执行命令后,需要按回车,并且需要输入电脑密码。ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew.png
二、利用安装nginx
Nginx:Nginx
是一个非常出色的HTTP服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
从github下载
Nginx到本地,增加home-brew对nginx的扩展brew tap homebrew/nginx
brew tap.png
2.安装Nginx服务器和rtmp模块
brew install nginx-full --with-rtmp-module
Snip20161017_6.png
3.查看是否安装成功
在终端开启nginx服务器,输入一下命令
nginx
nginx
:开启nginx服务器
在浏览器地址栏输入:http://localhost:8080 (直接点击)
如果出现下图, 则表示安装成功
Snip20161017_7.png
三、配置rtmp
1.查看nginx配置文件安装在哪
brew info nginx-full
Snip20161022_3.png
Snip20161022_4.png
Snip20161022_5.pngrtmp { server { listen 1990; application liveApp { live on; record off; } }}
Snip20161017_11.pngapplication
:流媒体上应用名称,可以随意填record off
:图片有误,不记录数据
3.重新加载nginx的配置文件
nginx -s reload
四、安装ffmepg进行推流
brew install ffmpeg
Snip20161017_10.png
五、使用ffmepg推流测试
ffmpeg -re -i (视频全路径) -vcodec copy -f flv (rtmp路径ffmpeg -re -i /Users/yuanzheng/Desktop/02-如何学习项目.mp4 -vcodec copy -f flv rtmp://localhost:1990/liveApp/room
需要跟配置的一一对应,端口,应用名称,room可以随便写延时:发送流媒体的数据的时候需要延时。不然的话,FFmpeg处理数据速度很快,瞬间就能把所有的数据发送出去,流媒体服务器是接受不了的
。因此需要按照视频实际的帧率
发送数据-re: 一定要加,代表按照帧率发送,否则ffmpeg会一股脑地按最高的效率发送数据-i : 输入文件-vcodec copy: 强制使用codec编解码方式,要加,否则ffmpeg会重新编码输入的H.264裸流-f 强制转换为什么格式,后接格式ffmpeg参数中文详细解释
六、使用VLC播放rtmp推流
1.下载VLC
2.打开VLC,输入直播地址,cmd + N
Snip20161018_15.pngSnip20161018_16.png![Uploading Snip20161018_20_411856.png . . .]
七、用ffmpeg抓取桌面以及摄像头推流进行直播
1.首先查看ffmpeg是否支持对应的设备,在OSX下面,Video和Audio设备使用的是avfoundation,所以可以使用avfoundation来查看
ffmpeg -f avfoundation -list_devices true -i ""
Snip20161018_13.png
2.抓取桌面和摄像头进行推流
ffmpeg-F avfoundation -framerate 30-I 1:0-F AV Foundation-Frame Rate 30-Video _ size 640 x480-I 0-c:v libx 264-预设慢速滤镜_复杂overl ay = main _ w-overlay _ w-10:main _ h-overlay _ h-10-acodec libmp 3 lame-ar 44100-AC 1-F flv rtmp://localhost:1990/live app/Room-F AV Foundation转换为AV Foundation-Frame Rate视频文件较小的缺点是转换慢-c:v flv标准flv编码的优点是速度快,清晰度高,所以视频文件会比较大-预置慢使用慢模式延迟转码延迟测试和设置优化高清高ffmpeg-filter _ complex Overlay = main _ w-Overlay _ w-10:main _ h-Overlay _ h-10:水印视频-acodec libmp3lame强制指定音频处理模式-ac 1通道选择-ar 44100音频赫兹。
如何开发一个客户喜欢的直播app?
一、需求分析:深入理解用户需求
在开发直播app之前,我们首先要做的就是深入理解用户需求。这包括了解用户对于直播内容的偏好、使用场景、互动方式等。通过市场调研、用户访谈、问卷调查等手段,我们可以收集到大量用户反馈,为后续的产品设计提供有力支持。
1. 内容多样性:用户对于直播内容的需求多种多样,包括娱乐、教育、购物、游戏等。我们需要确保app能够覆盖这些领域,提供多样化的直播内容。
2. 互动体验:直播app的互动性是吸引用户的重要因素。我们需要设计多种互动方式,如弹幕、点赞、送礼、连麦等,让用户能够充分参与到直播过程中。
3. 社交属性:直播app不仅是一个观看直播的平台,更是一个社交平台。我们需要加强用户之间的社交联系,如添加好友、创建群聊、分享直播等功能。
二、设计原则:打造用户友好的产品
在设计直播app时,我们需要遵循一些基本的设计原则,以确保产品的用户友好性和易用性。
1. 简洁明了:界面设计应简洁明了,避免过多的冗余元素和复杂的操作流程。用户应该能够轻松找到所需的功能,快速上手使用。
2. 响应迅速:app的响应速度应足够快,避免出现卡顿、延迟等问题。这不仅能提升用户体验,还能增加用户对于产品的信任度。
3. 个性化定制:为了满足不同用户的需求,我们需要提供个性化定制的功能。例如,用户可以根据自己的喜好设置主题、字体、音效等。
三、技术实现:打造稳定高效的直播系统
技术实现是开发直播app的核心环节。我们需要采用先进的技术和工具,打造稳定高效的直播系统。
1. 视频编解码技术:为了保障直播画面的清晰度和流畅度,我们需要采用先进的视频编解码技术。这包括视频压缩、传输、解码等环节,需要不断优化和调整。
2. 实时互动技术:直播app的实时互动功能是吸引用户的重要因素。我们需要采用高效的实时互动技术,如WebSocket、RTMP等,确保用户能够实时参与到直播过程中。
3. 分布式架构:为了应对大量用户同时在线的情况,我们需要采用分布式架构来构建直播系统。这包括负载均衡、缓存技术、数据库优化等手段,确保系统的稳定性和可扩展性。
四、运营策略:提升用户黏性和活跃度
除了产品设计和技术实现外,运营策略也是让直播app受到用户青睐的重要因素。
1. 内容运营:优质的内容是吸引用户的关键。我们需要积极引入优秀的直播主和内容创作者,提供多样化的直播内容。同时,我们还需要对内容进行严格审核和管理,确保内容的健康性和合法性。
2. 互动运营:互动是提升用户黏性和活跃度的重要手段。我们需要定期组织各种互动活动,如抽奖、竞猜、答题等,吸引用户参与并分享到社交平台。此外,我们还可以设置虚拟礼物、会员等级等机制,增加用户的付费意愿和忠诚度。
3.社交运营:社交属性是直播app的重要特征之一。
本段是特别嵌入:编辑是:红匣子,收集艰难,不图回报,与作者互动就1662051 1776(可微可电)共同商讨。
如何开发一个在线直播app?
随着互联网的不断发展,直播行业逐渐兴起。在线直播app不仅可以为用户提供丰富多彩的内容,还可以让用户与主播互动,分享自己的感受。下面详细了解一下在线直播app的开发原理。首先,我们需要定义一下线上直播a。