276
群英
RTMP推流上傳__上傳文件_開發人員指南_對象存儲 OSS-阿裏雲
OSS支持使用RTMP協議推送H264編碼的視頻流+AAC編碼的音頻流到OSS。推送到OSS的音視頻數據可以點播播放;在對延遲不敏感的應用場景,也可以做直播用途。
通過RTMP協議上傳音視頻數據目前有以下限製:
- 隻能使用RTMP推流的方式,不支持拉流。
- 必須包含視頻流,且視頻流格式為H264。
- 音頻流是可選的,並且隻支持AAC格式,其他格式的音頻流會被丟棄。
- 轉儲隻支持HLS協議。
- 一個LiveChannel同時隻能有一個客戶端向其推流。
下麵會分別介紹如何推送音視頻流到OSS,以及如何點播,直播播放。
向OSS推送音視頻數據
獲得推流地址
使用SDK調用PutLiveChannel接口,創建一個LiveChannel,並獲取對應的推流地址。如果Bucket的權限控製(ACL)為 公共讀寫(public-read-write),那麼可以直接使用得到的推流地址進行推流;否則需要進行簽名操作。
以使用python SDK為例,獲取未簽名以及簽名推流地址的代碼如下:
# 以使用python sdk為例
from oss2 import *
from oss2.models import *
host = "oss-cn-hangzhou.aliyuncs.com" #just for example
accessid = "your-access-id"
accesskey = "your-access-key"
bucket_name = "your-bucket"
channel_name = "test-channel"
auth = Auth(accessid, accesskey)
bucket = Bucket(auth, host, bucket_name)
channel_cfg = LiveChannelInfo(target = LiveChannelInfoTarget())
channel = bucket.create_live_channel(channel_name, channel_cfg)
publish_url = channel.publish_url
signed_publish_url = bucket.sign_rtmp_url("test-channel", "playlist.m3u8", 3600)
獲得的推流地址示例如下:
publish_url = rtmp://your-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel
signed_publish_url = rtmp://your-bucket.oss-cn-hangzhou.aliyuncs.com/live/your-channel?OSSAccessKeyId=LGarWrijh8HjKWg6&playlistName=t.m3u8&Expires=1472201595&Signature=bjKraZTTyzz9%2FpYoomDx4Wgh%2FlM%3D"
使用ffmpeg進行推流
可以使用ffmpeg推送本地的視頻文件到OSS,命令如下:
ffmpeg -i 1.flv -c copy -f flv "rtmp://your-bucket.oss-cn-hangzhou.aliyuncs.com/live/test-channel?OSSAccessKeyId=LGarWrijh8HjKWg6&Expires=1472199095&Signature=%2FAvRo7FTss1InBKgwn7Gz%2FUlp9w%3D"
使用OBS進行推流
首先點擊 Settings,在 URL 框中輸入前麵步驟獲取的推流地址,然後點擊 OK 開始推流即可。
如下圖所示,請注意推流地址的拆分方式:
播放推送到OSS的音視頻數據
直播場景
在推流的過程中,可以通過HLS協議播放正在推送的內容,各個平台的播放方法如下:
- 在Android、iOS等移動平台,直接在瀏覽器輸入LiveChannel對應的播放地址即可。
- Mac OS可以使用safari瀏覽器進行播放。
- PC端可以安裝vlc播放器進行播放。
為了直播流暢,可以設置比較小的FragDuration,例如2s;另外,GOP的大小最好固定且與LiveChannel的FragDuration配置一致。OBS的GOP (即 keyframe Interval)設置方法如下:
點播場景
推流的過程中,OSS總是以直播的方式更新m3u8文件。所以對於點播的場景,需要在推流結束後,調用PostVodPlaylist接口來組裝一個點播用的m3u8文件,然後使用該文件地址來播放。
對於點播的場景,可以設置較大的GOP來減少ts文件數,降低碼率。
最後更新:2016-11-23 16:04:18
上一篇:
上傳回調__上傳文件_開發人員指南_對象存儲 OSS-阿裏雲
下一篇:
簡單下載__下載文件_開發人員指南_對象存儲 OSS-阿裏雲
斷點續傳下載__下載文件_開發人員指南_對象存儲 OSS-阿裏雲
Web控製台__快速入門_歸檔存儲-阿裏雲
其他__常見問題_雲解析-阿裏雲
變更記錄__產品簡介_負載均衡-阿裏雲
域名增刪操作__使用手冊_HTTPDNS-阿裏雲
查詢消費堆積__消費管理相關接口_Open API_消息隊列 MQ-阿裏雲
如何上傳網站程序__網站上傳/下載_使用指南_雲虛機主機-阿裏雲
同一組ECS可建多個網站並同時用負載均衡嗎__後端 ECS 服務器常見問題_常見問題_負載均衡-阿裏雲
怎樣為一個子用戶授予OSS服務的完全管理權限___對象存儲(OSS)授權問題_授權常見問題_訪問控製-阿裏雲
如何申請備案服務號?__產品驗證_備案流程_備案-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲