日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

直播錄制

更新時(shí)間:

直播錄制是指將推送的直播流實(shí)時(shí)轉(zhuǎn)換成TS媒體切片后保存到OSS或VOD中的過(guò)程。它將直播內(nèi)容封裝成TS、M3U8、MP4或FLV等格式的視頻文件,并支持H264、HEVC、MPEG4的視頻編碼和AAC、MP3的音頻編碼。用戶(hù)可以通過(guò)直播控制臺(tái)或API接口選擇不同的錄制方式,包括自動(dòng)錄制、定時(shí)任務(wù)錄制、按需錄制和手動(dòng)錄制。錄制完成后,用戶(hù)可以通過(guò)直播控制臺(tái)查詢(xún)錄制文件,設(shè)置錄制文件回調(diào)或進(jìn)行實(shí)時(shí)處理。本文為您詳細(xì)介紹直播錄制相關(guān)信息(包括錄制原理、錄制文件的存儲(chǔ)、錄制方法等),您可以參考本章節(jié)完成直播錄制操作。

直播錄制原理

直播錄制的過(guò)程,是通過(guò)拉取您推上來(lái)的直播流,將音視頻封裝成單獨(dú)的一個(gè)個(gè)媒體切片(封裝格式為T(mén)S),然后存入您指定的OSS bucket或者存入到點(diǎn)播系統(tǒng)生成點(diǎn)播文件。直播錄制在工作時(shí)遵循以下原則:

  • 直播錄制只修改音視頻的封裝格式(RTMP/FLV轉(zhuǎn)成TS),絕不修改音視頻內(nèi)容(即編碼層內(nèi)容)。舉個(gè)例子,如果您推上來(lái)的直播流是花屏的,那錄制下來(lái)的也是花屏的。

  • 直播錄制有權(quán)限往用戶(hù)bucket寫(xiě)入錄制文件,但不會(huì)且沒(méi)有權(quán)限修改/刪除用戶(hù)bucket的任務(wù)文件(包括已寫(xiě)入的錄制文件)。用戶(hù)bucket中的錄制文件,完全由您自己管理。

錄制存儲(chǔ)方式

重要

同一路直播流錄制到VOD和錄制到OSS Bucket二者不能同時(shí)生效,只能選擇其中一種方式。

視頻直播提供以下兩種錄制文件的存儲(chǔ)方式,您可以根據(jù)需要進(jìn)行選擇:

  • 錄制存儲(chǔ)至OSS:OSS Bucket必須與播放域名的直播中心同地域,不支持跨地域錄制。

  • 錄制存儲(chǔ)至VOD:將直播內(nèi)容進(jìn)行錄制存儲(chǔ),并轉(zhuǎn)入視頻點(diǎn)播系統(tǒng)中,按點(diǎn)播錄制規(guī)則生成點(diǎn)播文件。視頻點(diǎn)播支持使用云剪輯功能對(duì)直播流的內(nèi)容進(jìn)行剪輯加工,實(shí)現(xiàn)視頻直播與短視頻的內(nèi)容聯(lián)動(dòng)。

錄制文件的封裝格式

直播錄制支持將直播流錄制成TS/M3U8、MP4、FLV封裝格式的視頻文件。但是不管是哪種封裝格式,直播錄制都會(huì)先將直播流切片成一個(gè)個(gè)的TS切片,然后再合成對(duì)應(yīng)封裝格式的錄制文件。

對(duì)于M3U8,直播錄制會(huì)將TS和M3U8都寫(xiě)入用戶(hù)的bucket(因?yàn)镸3U8只是HLS協(xié)議中的索引文件,音視頻數(shù)據(jù)仍然在TS中);而對(duì)于MP4和FLV,用戶(hù)bucket中只會(huì)有合成后的MP4和FLV切片。

限制條件

  • 錄制存儲(chǔ)至OSS

    錄制存儲(chǔ)至OSS的前提條件是您已創(chuàng)建OSS Bucket,且OSS Bucket必須與播放域名的直播中心同地域,不支持跨地域錄制。具體操作,請(qǐng)參見(jiàn)創(chuàng)建OSS Bucket

    正常情況下,開(kāi)通直播服務(wù)時(shí),您已自動(dòng)授權(quán)“允許直播服務(wù)寫(xiě)入用戶(hù)OSS”,因此直播錄制寫(xiě)入您指定的bucket時(shí)不存在權(quán)限問(wèn)題。如果該權(quán)限意外被刪除,您可以參考以下方法重新配置:

    • 通過(guò)控制臺(tái)配置:您需要授權(quán)視頻直播可將視頻內(nèi)容寫(xiě)入OSS產(chǎn)品的權(quán)限,授權(quán)后才能將視頻存儲(chǔ)至指定的OSS bucket中。具體操作,請(qǐng)參見(jiàn)配置直播寫(xiě)入OSS權(quán)限

    • 通過(guò)RAM進(jìn)行權(quán)限配置:詳情信息,請(qǐng)參見(jiàn)創(chuàng)建RAM用戶(hù)并授權(quán)

  • 錄制存儲(chǔ)至VOD

    錄制存儲(chǔ)至VOD的前提條件:您需要先開(kāi)通視頻點(diǎn)播服務(wù),且開(kāi)通點(diǎn)播服務(wù)的區(qū)域必須與播放域名的直播中心同地域才能將視頻存儲(chǔ)至VOD。視頻點(diǎn)播服務(wù)詳細(xì)操作,請(qǐng)參見(jiàn)開(kāi)通視頻點(diǎn)播

  • 音視頻編碼格式

    由于直播錄制需要先將直播流切分成TS文件,因此您推上來(lái)的直播流的音視頻編碼格式必須滿(mǎn)足TS封裝格式的要求。根據(jù)FLV標(biāo)準(zhǔn)和ISO/IEC 13818-1標(biāo)準(zhǔn),直播錄制目前僅支持以下編碼格式:

    • 視頻:H264、HEVC、MPEG4

    • 音頻:AAC、MP3

    說(shuō)明

    如果直播流包含了非以上格式編碼的音視頻,直播錄制可能會(huì)出現(xiàn):無(wú)法生成錄制文件、錄制黑屏、錄制沒(méi)有聲音,以及其他一些無(wú)法預(yù)見(jiàn)的異常情況。

  • 異常的直播流

    對(duì)于正常的直播流(沒(méi)有不支持的編碼格式、幀率穩(wěn)定、時(shí)間戳單調(diào)線(xiàn)性增長(zhǎng)),直播錄制均能正常生成錄制文件。當(dāng)然,對(duì)于偶爾幀率不穩(wěn)定,時(shí)間戳跳變的流,直播錄制也能做出一定的兼容,保證錄制文件的正常生成。

    但如果推上來(lái)的直播流存在嚴(yán)重異常(長(zhǎng)時(shí)間沒(méi)有視頻幀,時(shí)間戳增長(zhǎng)沒(méi)有規(guī)律,音視頻頭缺失等),直播錄制可能無(wú)法保證正常生成錄制文件。

不同錄制方式及使用場(chǎng)景

視頻直播提供以下錄制方式,您可根據(jù)具體的場(chǎng)景進(jìn)行選擇和使用:

錄制方式

使用場(chǎng)景

配置方式

存儲(chǔ)位置

按域名、AppName、StreamName多級(jí)別自動(dòng)錄制

錄制時(shí)可精確到某一路流。您可以輸入指定的域名、應(yīng)用名或流名稱(chēng),錄制某一路直播流。

  • 通過(guò)直播控制臺(tái)配置

  • 調(diào)用API接口

支持兩種存儲(chǔ)方式:

  • 錄制存儲(chǔ)至OSS

  • 錄制存儲(chǔ)至VOD

按定時(shí)任務(wù)自動(dòng)錄制

您可以通過(guò)API控制錄制的開(kāi)始與結(jié)束時(shí)間,在您指定的時(shí)間內(nèi)進(jìn)行錄制。

調(diào)用API接口

僅支持錄制存儲(chǔ)至OSS

按需錄制

您可以配置一個(gè)回調(diào),通過(guò)回調(diào)的方法精準(zhǔn)控制每一路流的錄制方式。

調(diào)用API接口

僅支持錄制存儲(chǔ)至OSS

手動(dòng)錄制

默認(rèn)不錄制。您可以通過(guò)調(diào)用接口來(lái)進(jìn)行手動(dòng)錄制。

調(diào)用API接口

僅支持錄制存儲(chǔ)至OSS

按域名、AppName、StreamName多級(jí)別自動(dòng)錄制

直播錄制支持按域名、AppName、StreamName多級(jí)別的方式進(jìn)行錄制。您可以指定域名、應(yīng)用名或流名稱(chēng),錄制某個(gè)域名下或App下所有的直播流,也可以精確錄制某一路直播流。

配置存儲(chǔ)至OSS或存儲(chǔ)至VOD的錄制模板時(shí)您可以配置多個(gè)錄制模板,但是如果出現(xiàn)一路直播流同時(shí)可以匹配到多個(gè)錄制模板時(shí),錄制模板生效存在優(yōu)先級(jí),具體優(yōu)先級(jí)如下(數(shù)值越小,優(yōu)先級(jí)越高):

優(yōu)先級(jí)

DomainName

AppName

StreamName

1

?

?

?

2

?

?

*

3

?

*

*

? 代表通過(guò)控制臺(tái)或API配置自動(dòng)錄制規(guī)則時(shí)對(duì)應(yīng)參數(shù)有值,且值不為*,* 代表對(duì)應(yīng)參數(shù)值為*。

同一路直播流不能同時(shí)選擇錄制到OSS和錄制到VOD,只能選擇其中一種方式。具體實(shí)現(xiàn)方式如下:

錄制存儲(chǔ)至OSS

錄制存儲(chǔ)至VOD

按定時(shí)任務(wù)自動(dòng)錄制

說(shuō)明

該功能僅針對(duì)流級(jí)別的配置生效(即配置中StreamName字段不為空才生效)。

如果您希望在指定的開(kāi)始時(shí)間和結(jié)束時(shí)間內(nèi)對(duì)一路直播流進(jìn)行定時(shí)錄制,可以通過(guò)調(diào)用API的方式來(lái)實(shí)現(xiàn)定時(shí)任務(wù)的自動(dòng)錄制。

API調(diào)用流程

  1. 配置自動(dòng)錄制規(guī)則,調(diào)用接口請(qǐng)參見(jiàn)AddLiveAppRecordConfig

  2. 進(jìn)行推流,詳細(xì)內(nèi)容請(qǐng)參見(jiàn)推流、拉流與播流

相關(guān)API參考:

API名稱(chēng)

說(shuō)明

DeleteLiveAppRecordConfig

刪除App級(jí)別錄制配置,如果不再需要某項(xiàng)規(guī)則,可以通過(guò)該接口刪除。

DescribeLiveRecordConfig

查詢(xún)所有配置的規(guī)則列表.

實(shí)踐示例

例如:創(chuàng)建DomainName為example.com,AppName為liveApp****,StreamName為liveStream****,北京時(shí)間為2019-02-15 09:00:00到2019-02-15 21:00:00的錄制任務(wù)。同時(shí)錄制為M3U8和MP4兩種格式,M3U8格式單個(gè)錄制文件周期默認(rèn)為6小時(shí)(即RecordFormat.1.CycleDuration不傳值),MP4格式單個(gè)錄制文件的錄制周期設(shè)置為半小時(shí),錄制到oss-cn-shanghai.aliyuncs.com名為liveBucket****的bucket中:

  1. 調(diào)用AddLiveAppRecordConfig接口,參數(shù)如下:

    /?AppName=liveApp****
    &DomainName=example.com
    &StreamName=liveStream****
    &OssBucket=liveBucket****
    &OssEndpoint=oss-cn-shanghai.aliyuncs.com
    &RecordFormat.1.Format=m3u8
    &RecordFormat.2.Format=mp4
    &RecordFormat.2.CycleDuration=1800
    &StartTime=2019-02-15T01:00:00Z
    &EndTime=2019-02-15T13:00:00Z
    &<公共請(qǐng)求參數(shù)>
    說(shuō)明

    StartTime和EndTime字段填的是UTC時(shí)間(假設(shè)您本地為北京時(shí)間,UTC時(shí)間=北京時(shí)間-8),請(qǐng)注意和本地時(shí)區(qū)的對(duì)應(yīng)。

  2. 推流。

    說(shuō)明
    • 如果指定了錄制時(shí)間段,在該時(shí)間段內(nèi)如果沒(méi)有推流,自然不會(huì)錄制。

    • 限定時(shí)間段的配置規(guī)則是一次性的,即當(dāng)指定的時(shí)間段過(guò)去之后,該規(guī)則不會(huì)再觸發(fā)。

按需錄制

按需錄制的原理是當(dāng)直播流推流上來(lái)之后,直播錄制服務(wù)會(huì)發(fā)送一條HTTP回調(diào)給您事先設(shè)定的后臺(tái)服務(wù),通過(guò)該回調(diào)的返回內(nèi)容決定是否錄制這條直播流,并且可以動(dòng)態(tài)的修改錄制格式和錄制周期。

系統(tǒng)交互如下圖所示,您需要開(kāi)發(fā)圖中的App業(yè)務(wù)服務(wù),接收HTTP回調(diào),并根據(jù)您自身的業(yè)務(wù)邏輯決定是否錄制。

按需錄制按需錄制可以通過(guò)調(diào)用API 的方式來(lái)實(shí)現(xiàn):

  1. 調(diào)用接口添加錄制配置配置錄制規(guī)則。其中OnDemand字段填1,表示通過(guò)HTTP回調(diào)開(kāi)啟按需錄制。

  2. 調(diào)用接口AddLiveRecordNotifyConfig,設(shè)置OnDemandUrl字段。

  3. 推流。

  4. App業(yè)務(wù)服務(wù)接收到該推流的按需錄制回調(diào),根據(jù)自身業(yè)務(wù)決定是否錄制,返回內(nèi)容。

  5. 直播錄制服務(wù)根據(jù)按需錄制回調(diào)返回的結(jié)果,啟動(dòng)錄制或不啟動(dòng)錄制。

涉及的API包括:

API名稱(chēng)

描述

AddLiveAppRecordConfig

配置錄制規(guī)則。

DeleteLiveAppRecordConfig

如果不再需要某項(xiàng)規(guī)則,可以通過(guò)該接口刪除。

DescribeLiveRecordConfig

查詢(xún)所有配置的規(guī)則。

AddLiveRecordNotifyConfig

配置某個(gè)域名下的錄制回調(diào),包括事件回調(diào)和按需錄制回調(diào)。

DeleteLiveRecordNotifyConfig

如果不再需要某個(gè)域名的錄制回調(diào),可以通過(guò)該接口刪除。

DescribeLiveRecordNotifyConfig

查詢(xún)某個(gè)域名的錄制回調(diào)。

UpdateLiveRecordNotifyConfig

更新某個(gè)域名的錄制回調(diào)。

On-demand recording

按需錄制回調(diào)給您的HTTP消息定義。

實(shí)踐示例

  1. 調(diào)用AddLiveAppRecordConfig接口,配置指定域名為example.com,AppName為liveBucket****下的所有直播流自動(dòng)錄制:

    /?AppName=liveApp****
    &DomainName=example.com
    &OssBucket=liveBucket****
    &OssEndpoint=oss-cn-shanghai.aliyuncs.com
    &RecordFormat.1.Format=m3u8
    &<公共請(qǐng)求參數(shù)>
  2. 調(diào)用AddLiveRecordNotifyConfig接口,設(shè)置OnDemandUrl字段為http://example.aliyundoc.com

    /?DomainName=example.com
    &OnDemandUrl=http://example.aliyundoc.com
    &<公共請(qǐng)求參數(shù)>
  3. 推流。

  4. App業(yè)務(wù)服務(wù)接收到的按需錄制回調(diào)為:(詳見(jiàn)按需錄制回調(diào)

    GET /?app=liveApp****&domain=example.com&stream=liveStream****&vbitrate=2000&codec=h264 HTTP/1.1
    Host: demo.aliyundoc.com
    User-Agent: Go-http-client/1.1
  5. 根據(jù)回調(diào)返回的結(jié)果:(詳見(jiàn)按需錄制回調(diào)

    • 如果收到以下結(jié)果,則進(jìn)行錄制:

      {
          "ApiVersion" : "1.0",
          "NeedRecord" : true
      }
    • 如果收到以下結(jié)果,則不錄制:

      {
          "ApiVersion" : "1.0",
          "NeedRecord" : false
      }
說(shuō)明
  • 如果沒(méi)有設(shè)置OnDemandUrl,就不會(huì)有按需錄制回調(diào),默認(rèn)行為是不錄制。

  • 在調(diào)用AddLiveRecordNotifyConfig接口,設(shè)置錄制回調(diào)前請(qǐng)先調(diào)用接口AddLiveAppRecordConfig設(shè)置錄制規(guī)則,否則無(wú)法啟動(dòng)錄制任務(wù)。

手動(dòng)錄制

針對(duì)直播錄制您還可以直接通過(guò)手動(dòng)的方式實(shí)現(xiàn)某條直播流的錄制啟動(dòng)。如果某條直播流正在錄制,您也可以通過(guò)手動(dòng)的方式停止該直播流的錄制。

手動(dòng)錄制通過(guò)調(diào)用API實(shí)現(xiàn)

  1. 調(diào)用AddLiveAppRecordConfig接口配置錄制規(guī)則。設(shè)置ondemand=7,表示推流后不自動(dòng)錄制。

  2. 推流。

  3. 調(diào)用RealTimeRecordCommand接口啟動(dòng)錄制。

  4. (如果需要)調(diào)用RealTimeRecordCommand接口停止錄制。

涉及到的API包括:

API名稱(chēng)

說(shuō)明

AddLiveAppRecordConfig

配置自動(dòng)錄制規(guī)則。

DeleteLiveAppRecordConfig

如果不再需要某項(xiàng)規(guī)則,可以通過(guò)該接口刪除。

DescribeLiveRecordConfig

查詢(xún)所有配置的規(guī)則。

RealTimeRecordCommand

實(shí)時(shí)錄制命令,可控制手動(dòng)啟動(dòng)錄制和手動(dòng)停止錄制。

實(shí)踐示例

  • 手動(dòng)啟動(dòng)錄制。

    如果直播流example.com/liveApp****/liveStream****正在推流,可以按以下方式調(diào)用RealTimeRecordCommand接口啟動(dòng)錄制:

    /?AppName=liveApp****
    &DomainName=example.com
    &StreamName=liveStream****
    &Command=start
    &<公共請(qǐng)求參數(shù)>
  • 手動(dòng)停止錄制

    如果直播流example.com/liveApp****/liveStream****正在錄制,可以按以下方式調(diào)用RealTimeRecordCommand接口停止錄制:

    /?AppName=liveApp****
    &DomainName=example.com
    &StreamName=liveStream****
    &Command=stop
    &<公共請(qǐng)求參數(shù)>
說(shuō)明
  • 如果直播流不存在(沒(méi)有推流),調(diào)用RealTimeRecordCommand接口手動(dòng)啟動(dòng)錄制會(huì)返回失敗。

  • 手動(dòng)啟動(dòng)錄制的直播流如果發(fā)生了斷流,就會(huì)停止錄制,并且重新推流后不會(huì)自動(dòng)啟動(dòng)錄制(如果沒(méi)有配置自動(dòng)錄制)。

錄制文件獲取

直播錄制結(jié)束后,可以通過(guò)以下方法獲取到對(duì)應(yīng)的錄制文件:

  • 方法一:通過(guò)直播控制臺(tái)查看錄制文件。詳細(xì)操作,請(qǐng)參見(jiàn)錄制文件管理

  • 方法二:通過(guò)調(diào)用DescribeLiveStreamRecordIndexFiles查詢(xún)某個(gè)時(shí)間段內(nèi)的所有錄制索引文件。需注意接口中的StartTime和EndTime字段填的均是UTC+0時(shí)間,請(qǐng)注意和本地時(shí)區(qū)的對(duì)應(yīng)。例如您本地為北京時(shí)間,UTC時(shí)間=北京時(shí)間-8。

    http(s)://live.aliyuncs.com/?Action=DescribeLiveStreamRecordIndexFiles
    &AppName=liveApp****
    &DomainName=example.com
    &EndTime=2017-12-22T08:00:00Z
    &StartTime=2017-12-21T08:00:00Z
    &StreamName=liveStream****
    &<公共請(qǐng)求參數(shù)>
  • 方法三:通過(guò)調(diào)用AddLiveRecordNotifyConfig接口設(shè)置錄制文件生成回調(diào),每當(dāng)一個(gè)錄制文件生成,都能收到一個(gè)HTTP請(qǐng)求,便于您做一些業(yè)務(wù)上的實(shí)時(shí)處理。具體操作如下:

    調(diào)用AddLiveRecordNotifyConfig接口,設(shè)置域名aliyundoc.com下直播錄制文件生成事件都回調(diào)到http://example.aliyundoc.com這個(gè)地址:

    /?DomainName=aliyundoc.com
    &NotifyUrl=http://example.aliyundoc.com
    &<公共請(qǐng)求參數(shù)>

    設(shè)置之后,如果一條直播流aliyundoc.com/live/teststream生成錄制文件(TS/MP4/FLV),您就會(huì)收到以下內(nèi)容的回調(diào):

    POST / HTTP/1.1
    Host: live.example.com
    User-Agent: Go-http-client/1.1
    
    {
      "domain": "aliyundoc.com",
      "app": "live",
      "stream": "teststream",
      "uri": "live/teststream/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
      "duration": 69.403,
      "start_time": 1488985786,
      "stop_time": 1488985840
    }

注意事項(xiàng)

  • 如果想知道自動(dòng)錄制(按域名/AppName/StreamName多級(jí)別自動(dòng)錄制、按定時(shí)任務(wù)自動(dòng)錄制)是否生效,可以設(shè)置錄制回調(diào),詳情請(qǐng)參見(jiàn)直播錄制回調(diào)

  • 如果希望針對(duì)每個(gè)錄制文件做實(shí)時(shí)處理,可通過(guò)創(chuàng)建錄制內(nèi)容索引文件實(shí)現(xiàn),詳情請(qǐng)參見(jiàn)錄制內(nèi)容合并與提取

  • 錄制周期為當(dāng)前直播轉(zhuǎn)為錄制文件后的最大時(shí)長(zhǎng),直播時(shí)長(zhǎng)超過(guò)設(shè)定的錄制周期后,將生成新文件,錄制周期支持15-360分鐘。可在直播控制臺(tái)上配置錄制模板時(shí)進(jìn)行設(shè)置,也可以調(diào)用接口AddLiveRecordVodConfig(錄制到VOD)或接口AddLiveAppRecordConfig(錄制到OSS)進(jìn)行設(shè)置。

  • 如果在一個(gè)錄制周期內(nèi),直播流發(fā)生了斷流,但是在3分鐘內(nèi),該直播流又推上來(lái)了,那么仍會(huì)在同一個(gè)錄制文件中繼續(xù)錄制,不會(huì)生成新的錄制文件。這就意味著,一條直播流必須斷流超過(guò)3分鐘,才會(huì)生成最后一個(gè)錄制文件。

  • 視頻直播支持觸發(fā)拉流,當(dāng)使用觸發(fā)拉流域名對(duì)應(yīng)的播放地址進(jìn)行播放時(shí),會(huì)自動(dòng)觸發(fā)阿里云視頻直播服務(wù)進(jìn)行拉流直播,無(wú)人播放時(shí)則不會(huì)回源站進(jìn)行拉流。自動(dòng)錄制、按需錄制、手動(dòng)錄制功能應(yīng)用在觸發(fā)拉流場(chǎng)景時(shí),如果觸發(fā)拉流無(wú)人播放,則不會(huì)回源站拉流,自動(dòng)錄制、按需錄制、手動(dòng)錄制同樣也不會(huì)進(jìn)行錄制。

常見(jiàn)問(wèn)題

直播錄制常見(jiàn)問(wèn)題