1. 程式人生 > >iOS:基於RTMP的視訊推流

iOS:基於RTMP的視訊推流

iOS基於RTMP的視訊推流

一、基本介紹

iOS直播一出世,立馬火熱的不行,各種直播平臺如雨後春筍,正因為如此,也同樣帶動了直播的技術快速發展,在IT界精通直播技術的猴子可是很值錢的。直播技術涉及的知識面很廣,最主要的大概就是這幾個:軟硬解碼.h264、美顏處理、推流RTMP拉流播放、視訊錄製、傳送彈幕、即時通訊.

二、常用技術

  • 軟硬解碼.h264:使用iOS8.0之後蘋果開源的VideoToolBox,這正是很多直播軟體最低相容iOS8的原因了
  • 美顏處理:CPUImage,內建150多種濾鏡,功能強大
  • 拉流播放:ijkplayer.framework、VLC
  • 推流RTMP:安裝nginx+rtmp伺服器,ffmpeg推流
  • 視訊錄製:UIImagePiackerController、AVCaptureSession、GPUImageVideoCamera
  • 傳送彈幕:BarrageRenderer第三方庫
  • 即時通訊:XMPP、環信、融雲等

1、安裝Homebrew,開啟終端, 檢視是否已經安裝了Homebrew, 直接終端輸入命令

 man brew

2、如果Mac已經安裝了, 會顯示一些命令的幫助資訊. 此時輸入Q退出即可, 直接進入第二步。反之, 如果沒有安裝,執行命令。此處可能需要輸入密碼,修改宿主目錄讀寫許可權。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

3、安裝nginx,先clone nginx專案到本地

brew tap homebrew/nginx

4、執行安裝

brew install nginx-full --with-rtmp-module

5、nginx和rtmp模組就安裝好了,輸入命令

 nginx

7、安裝成功後,配置nginx和ramp,找到nginx.conf檔案所在位置

 brew info nginx-full

8、編輯nginx.conf,在http節點後面加上rtmp配置

  #在http節點後面加上rtmp配置
rtmp { server { listen 1935; application rtmplive { live on; record off; } } }

9、檢視nginx版本號

 nginx -v

10、替換成自己的nginx版本號,重啟nginx

 /usr/local/Cellar/nginx-full/1.10.3/bin/nginx -s reload

11、安裝ffmpeg,大概50多M,建議翻or牆安裝,本人翻or牆安裝很快成功了。

 brew install ffmpeg

12、安裝一個支援rtmp協議的視訊播放器VLC

13、ffmpeg推流,準備本地的一個視訊檔案

  ffmpeg -re -i  /Users/xiayuanquan/Desktop/movie.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room

14、將視訊推流到伺服器後,開啟VLC,然後File->open network->輸入,實現效果請檢視下面的參考原地址第二條

 rtmp://localhost:1935/rtmplive/room

三、參考原地址

相關推薦

iOS基於RTMP視訊

iOS基於RTMP的視訊推流 一、基本介紹 iOS直播一出世,立馬火熱的不行,各種直播平臺如雨後春筍,正因為如此,也同樣帶動了直播的技術快速發展,在IT界精通直播技術的猴子可是很值錢的。直播技術涉及的知識面很廣,最主要的大概就是這幾個:軟硬解碼.h264、美顏處理、推流RTMP、拉流播放、視訊錄製、傳送彈幕

一個直播例子快速整合iOS基於RTMP視訊

效果圖 iTools有點卡, 但是推到伺服器倒是很快的. 推流 前言 這篇blog是iOS視訊直播初窺:<喵播APP>的一個補充. 因為之前傳到github上的專案中沒有整合視訊的推流.有很多朋友簡信和微博上問我推流這部分怎麼實現的. 所以, 我重新集成了RTMP的推流, 合併到了

Mac搭建nginx+rtmp伺服器,通過ffmpeg實現視訊

最近在研究關於直播方面的技術,中間遇到很多坑,在此記錄一下,以免再次跳坑 1.安裝Homebrew 開啟終端, 檢視是否已經安裝了Homebrew, 直接終端輸入命令 man brew 如果Mac已經安裝了, 會顯示一些命令的幫助資訊. 此時 輸入Q退出即可, 直接進

【GStreamer學習】基於NVIDIA TX系列板卡的硬體解碼及視訊

以NVIDIA TX1為例硬解碼就是利用硬體晶片來解碼的,TX1有單獨的解碼模組,NVDEC. 軟解碼是用軟體程式來解碼,比較佔用CPU資源 檢視cpu gpu 以及編解碼模組的使用: sudo ./tegrastats 1 Gstreamer概述 Gstreamer是一個li

Android 使用Rtmp視訊(002)

前言 本文介紹的是使用Android攝像頭、麥克風採集的音、視訊進行編碼。然後通過librtmp推送到流媒體伺服器上的功能。  我所使用的環境:Android Studio 2.2.3 、NDK13。 流程 使用到的Api 音視訊採集用到的api有:Camera、AudioRecord編

iOS直播--Nginx伺服器搭建和RTMP,HLS實現

Nginx介紹Nginx ("engine x") 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月

最簡單的基於libVLC的例子最簡單的基於libVLC的

=====================================================最簡單的基於libVLC的例子文章列表:=====================================================本文記錄基於libVLC

【GStreamer】基於NVIDIA TEGRA系列板卡的硬體解碼及視訊

以NVIDIA TX1為例硬解碼就是利用硬體晶片來解碼的,TX1有單獨的解碼模組,NVDEC. 軟解碼是用軟體程式來解碼,比較佔用CPU資源 檢視cpu gpu 以及編解碼模組的使用: sudo ./tegrastats1 Gstreamer概述 Gstreamer是一個li

最簡單的基於FFmpeg的器(以RTMP為例)

由於工作一部分工作是作為流媒體伺服器的程式設計師。所以自己那塊也算是處理了推流器的一塊程式碼吧。 這邊是從網上轉載的文章,原文:http://blog.csdn.net/leixiaohua1020/article/details/46890487 =========

day122:MoFang:OSSRS媒體直播伺服器&基於APICloud的acLive直播模組實現RTMP直播

目錄 1.docker安裝OSSRS流媒體直播伺服器 2.基於APICloud的acLive直播推流模組實現RTMP直播推流 3.直播流管理 1.docker安裝OSSRS流媒體直播伺服器 1.OSSRS簡介 在外界開發中, 如果要實現直播功能.常用的方式有: 1. 通過第三方介面來實現. 可以申請阿里雲

android全平臺編譯ffmpeg視訊實踐

ffmpeg實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio

[轉]不用任何第三方,寫一個RTMP直播

2016年是移動直播爆發年,不到半年的時間內無數移動直播App掀起了全民直播的熱潮。然而個人覺得直播的門檻相對較高,從推流端到服務端器到播放端,無不需要專業的技術來支撐,僅僅推流端就有不少需要學習的知識。目前大部分直播採用的都是RTMP協議,我這裡寫一個簡單的Demo,幫助大家更好的理解直播推流的過

Ubuntu下搭建Nginx伺服器+整合RTMP視訊直播處理(邊做邊做更新)

簡介: 要求:做一個網頁獲取攝像頭的視訊流,然後將視訊流經過流伺服器推送到後臺視訊處理伺服器,再由後臺視訊處理伺服器推送到流伺服器,最終推送到頁面。如圖: 經過查閱資料,目前有red5以及nginx+nginx-rtmp-module實現,選擇第二種方式來實現。 準備工作:

nginx+rtmp+ffmpeg

簡介 nginx是非常優秀的開源伺服器,用它來做hls或者rtmp流媒體伺服器是非常不錯的選擇,本人在網上整理了安裝流程,分享給大家並且作備忘。 一、安裝Homebrow 已經安裝了brow的可以直接跳過這一步。 執行命令 ruby -e "$(curl -fsSL

基於Rtmp協議的媒體直播實現

最近需要實現一個類似於視訊直播這樣的功能,很幸運的是,在網上找到了兩篇博文,寫的不錯,省了很多時間精力,在此感謝博主的分享,原博文的地址在下方。 由於博主的文章較長且散,我在此對程式碼進行了整理和打包

windows上ffmpeg命令+nginx + rtmp實現

ffmpeg命令配置 1.下載ffmpeg官網地址:http://ffmpeg.org 找到window系統對應版本下載 2.配置path路徑 下載解壓完成,在環境變數中新增bin路徑: 我這裡配置 配置好以後就可以可以執行ffmpeg命令 剩

iOS整合ijkplayer視訊直播

介紹: ijkplayer 是一款做視訊直播的框架, 基於ffmpeg, 支援 Android 和 iOS, 網上也有很多整合說明, 但是個人覺得還是不夠詳細, 在這裡詳細的講一下在 iOS 中如何整合ijkplayer, 即便以前從沒有接觸過, 按著下面做也可以整合成功! 分析:   ijkp

開發實現C++ RTMP直播sdk

前言 rtmp即Real Time Messaging Protocol(實時訊息傳輸協議)的首字母縮寫,它是由Adobe公司提出的一種應用層的協議,用來解決多媒體資料傳輸流的多路複用(Multiplexing)和分包(packetizing)的問題。 目前

Android視訊直播學習【三】

前面提到了Spydroid兩個關鍵的類:Session和RtspClient。Session是負責維護流媒體資源的,而RtspClient則是建立RTSP連結的。接下來我們就詳細的分析RtspClient類。 首先RtspClient有一個Paramet