視頻直播常見問題與解決辦法彙總【系列三—直播推流】

摘要: 直播推流初始化設置 要進行直播推流,您必須開啓直播加速 > 配置直播域名 > 直播推流,詳情參考 快速開始。 如何獲取推流地址 直播加速配置成功後,您能夠經過如下方式獲取對應的推流地址。 登陸 視頻直播控制檯。html

 

直播推流初始化設置java

 

要進行直播推流,您必須開啓直播加速 > 配置直播域名 > 直播推流,詳情參考 快速開始服務器

 

如何獲取推流地址app

 

直播加速配置成功後,您能夠經過如下方式獲取對應的推流地址。dom

 

登陸 視頻直播控制檯maven

  • 單擊 域名管理。
  • 選擇所需地域。
  • 選擇所需的域名。
  • 選擇所需域名,並單擊右側的 管理。
  • 在 基本信息 中,獲取對應的推流地址:rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=videolive.aliyuntest.club 。

注意:ide

  • 直播配置成功後,對應的推流地址獲取是不須要調用 API 或者 SDK 生成或者初始化的,使用推流工具推流的時候,填入須要的 AppName 或者 StreamName 進行推流便可。如指定推流地址:rtmp://video-center.alivecdn.com/1/2?vhost=live.aliyun.com。
  • 推流地址中 APPName 是應用名稱,支持自定義,能夠更改。
  • 推流地址中 StreamName 是流名稱,支持自定義,能夠更改。
  • 推流的 APPName 或 StreamName 不建議設置爲中文字符。

 

爲什麼OBS推流不成功工具

 

OBS 推流不成功,對應 視頻直播控制檯 > 流管理,正在推流信息中不能看到對應流.OBS如何進行推流,詳情參考 OBS 操做指南阿里雲

 

排查3d

  • 排查對應域名是否進行直播配置:視頻直播控制檯 > 域名管理 中可否看到對應的域名。直播加速配置參考 直播加速配置
  • 排查OBS推流配置填寫的是否準確,詳情參考 OBS 推流

OBS推流配置以下: 

FMS URL / URL: rtmp://video-center.alivecdn.com/AppName 

播放路徑/串碼流(若是存在)/ 流祕鑰: StreamName?vhost=live.aliyun.com

  • 排查直播域名是否開啓了A鑑權。

1.登陸 視頻直播控制檯。

2.單擊 域名管理。

3.選擇所需的地域。

4.選擇所需的域名。

5.單擊所選域名右側 管理。

6.單擊 鑑權配置。

 

若是開啓,計得算推流地址(rtmp://video-center.alivecdn.com/AppName/StreamName?vhost=videolive.aliyuntest.club)的鑑權地址進行推流,鑑權地址計算參考 快速開始 第4點鑑權配置。

 

直播推流支持哪些協議

 

視頻直播只支持rtmp協議推流

 

直播推流如何進行鑑權推流

 

直播鑑權開啓及鑑權地址計算參考 快速開始 第4點鑑權配置。

 

鑑權地址計算完成後,使用對應的鑑權地址進行推流:

OBS推流配置相似以下: 

FMS URL / URL: rtmp://video-center.alivecdn.com/AppName 

播放路徑/串碼流(若是存在)/ 流祕鑰: StreamName?vhost=live8.aliyuntest.club&auth_key=1487766738-0-0-a96e76d2ebf9bbd855b0d4a9168ee600;

 

如何確認推流成功

 

1.登陸 視頻直播控制檯。

2.單擊 流管理。

3.選擇所需的地域。

4.選擇所需的域名。

5.流狀態選擇 正在推流。

6.若是能夠查看到存在對應流,則推流成功。

 

禁止推流的狀況該如何實現?

 

用戶存在業務場景需求某路流臨時禁止推流。例如,對應的鑑權推流地址暴露,客戶惡意推流該地址、業務需求禁止該推流URL進行推流等,就可使用直播的禁止推流功能知足該需求。推流及鑑權推流地址概念參考 直播推流地址相關問題。

 

直播控制檯禁止推流

 

1.獲取正在推流地址並加入黑名單

直播推流成功後,您能夠在 視頻直播控制檯 > 流管理 > 選擇所需的地域和域名 > 選擇正在推流,查看到正在推流的地址,單擊 加入黑名單 便可。

2.獲取歷史推流地址並加入黑名單

直播推流成功後,您能夠在 視頻直播控制檯 > 流管理 > 選擇所需的地域和域名 > 選擇歷史推流,查看到歷史推流地址,單擊 加入黑名單 便可。

SDK實現禁止推流

 

視頻直播的API是基於阿里雲的OpenAPI實現的。所以,SDK的調用也是對OpenAPI封裝後調用。以Java SDK爲例,Java SDK建議使用maven管理項目依賴,在pom.xml中添加以下的依賴項:

 

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

 

其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模塊,在使用OpenAPI的產品調用Java SDK均須要添加該依賴項,而aliyun-java-sdk-cdn包括了視頻直播接口的Request和Response類;其中禁止推流的Request和Response類爲ForbidLiveStreamRequest及ForbidLiveStreamResponse,Java代碼示例以下:

 

public static void main(String[] args) throws Exception { IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey); DefaultAcsClient client = new DefaultAcsClient(profile); ForbidLiveStreamResponse res=ForbidLiveStreamR(client); System.out.println(res.getRequestId()); } static ForbidLiveStreamResponse ForbidLiveStreamR(DefaultAcsClient client){ ForbidLiveStreamRequest request =new ForbidLiveStreamRequest(); request.setDomainName("<domainname>"); request.setAppName("<appname>"); request.setStreamName("<streamname>"); request.setLiveStreamType("publisher"); ForbidLiveStreamResponse response=null; try { response = client.getAcsResponse(request); }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } return response; }

 

Demo代碼主要流程以下:

  • 初始化Client對象。SDK須要經過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,由於這裏指的是OpenAPI的服務器所在區域。AccessKeyId和AccessKeySecret參數便是帳號權限驗證,若是是主帳號的AccessKeyId和AccessKeySecret,則能夠正常使用。若是是子帳號的AccessKeyId和AccessKeySecret參數,則須要保證該子帳號有視頻直播的權限。
  • 初始化請求Request類。SDK對每一個接口實現了對應的Request類和Response類,對應的禁止推流Request類須要傳入哪些參數,看API接口定義 禁止推流API
  • 發起請求獲取結果。使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的反序列化的結果實例化爲對應接口的Response類。而且在執行該方法時能夠catch ServerException和ClientException異常類,當http status>=300且<500 SDK拋ClientException,表示客戶端錯誤。當http status>=500 SDK拋ServerException,表示服務器端錯誤。若是沒有拋出異常則表示接口調用成功。

 

如何查看推流黑名單

 

1.直播控制檯查看推流黑名單

直播推流成功後,您能夠在 視頻直播控制檯 > 流管理 > 選擇所需的地域和域名 > 選擇黑名單,查看到黑名單中的推流地址。

2.SDK獲取黑名單地址視頻直播的API是基於阿里雲的OpenAPI實現的,所以SDK的調用也是對OpenAPI封裝後調用。以Java SDK爲例:Java SDK建議使用maven管理項目依賴,在pom.xml中添加以下的依賴項:

 

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

 

其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模塊,在使用OpenAPI的產品調用Java SDK均須要添加該依賴項,而aliyun-java-sdk-cdn包括了視頻直播接口的Request和Response類。其中,查詢推流黑名單列表的Request和Response類爲DescribeLiveStreamsBlockListRequest及DescribeLiveStreamsBlockListResponse,Java代碼示例以下:

 

public static void main(String[] args) throws Exception { IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey); DefaultAcsClient client = new DefaultAcsClient(profile); DescribeLiveStreamsBlockListResponse res=DescribeLiveStreamsBlockListR(client); System.out.println(res.getStreamUrls()); } static DescribeLiveStreamsBlockListResponse DescribeLiveStreamsBlockListR(DefaultAcsClient client){ DescribeLiveStreamsBlockListRequest request =new DescribeLiveStreamsBlockListRequest(); request.setDomainName("<domainname>"); DescribeLiveStreamsBlockListResponse response=null; try { response = client.getAcsResponse(request); }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } return response; }

 

Demo代碼主要流程以下:

  • 初始化Client對象。SDK須要經過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中,region請一直寫cn-hangzhou,由於這裏指的是OpenAPI的服務器所在區域。AccessKeyId和AccessKeySecret參數便是帳號權限驗證,若是是主帳號的AccessKeyId和AccessKeySecret則能夠正常使用,若是是子帳號的AccessKeyId和AccessKeySecret參數則須要保證該子帳號有視頻直播的權限。
  • 初始化請求Request類。SDK對每一個接口實現了對應的Request類和Response類,對應的禁止推流Request類須要傳入哪些參數,看API接口定義 查詢推流黑名單列表API
  • 發起請求獲取結果。使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的反序列化的結果實例化爲對應接口的Response類。而且在執行該方法時能夠catch ServerException和ClientException異常類,當http status>=300且<500 SDK拋ClientException,表示客戶端錯誤。當http status>=500 SDK拋ServerException,表示服務器端錯誤。若是沒有拋出異常則表示接口調用成功。

 

如何恢復黑名單直播流推送地址

 

1.直播控制檯恢復

直播推流成功後,您能夠在 視頻直播控制檯 > 流管理 > 選擇所需的地域和域名 > 選擇正在推流 > 選擇黑名單,查看到黑名單中的推流地址,進行恢復。

2.SDK恢復黑名單直播流推送地址

視頻直播的API是基於阿里雲的OpenAPI實現的,所以SDK的調用也是對OpenAPI封裝後調用。以Java SDK爲例。Java SDK建議使用maven管理項目依賴,在pom.xml中添加以下的依賴項:

 

<dependencies><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-cdn</artifactid><version>2.3.1</version></dependency><dependency><groupid>com.aliyun</groupid><artifactid>aliyun-java-sdk-core</artifactid><optional>true</optional><version>2.3.8</version></dependency></dependencies>

 

其中,aliyun-java-sdk-core是對阿里雲OpenAPI封裝的核心模塊,在使用OpenAPI的產品調用Java SDK均須要添加該依賴項,而aliyun-java-sdk-cdn包括了視頻直播接口的Request和Response類。其中,恢復直播流推送的Request和Response類爲ResumeLiveStreamRequest及ResumeLiveStreamResponse,Java代碼示例以下:

 

public static void main(String[] args) throws Exception { IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessId, accessKey); DefaultAcsClient client = new DefaultAcsClient(profile); ResumeLiveStreamResponse res=ResumeLiveStreamR(client); System.out.println(res.getRequestId()); } static HttpResponse ForbidLiveStream(DefaultAcsClient client){ ForbidLiveStreamRequest request =new ForbidLiveStreamRequest(); request.setDomainName("<domainname>"); request.setAppName("<appname>"); request.setStreamName("<streamname>"); request.setLiveStreamType("publisher"); HttpResponse response=null; try { response = client.doAction(request); }catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } return response; }

 

Demo代碼主要流程以下:

  • 初始化Client對象。SDK須要經過IAcsClient對象完成對OpenAPI的調用,而初始化IAcsClient對象時根據IClientProfile對象配置region、AccessKeyId和AccessKeySecret參數。其中region請一直寫cn-hangzhou,由於這裏指的是OpenAPI的服務器所在區域。AccessKeyId和AccessKeySecret參數便是帳號權限驗證。若是是主帳號的AccessKeyId和AccessKeySecret,則能夠正常使用。若是是子帳號的AccessKeyId和AccessKeySecret參數,則須要保證該子帳號有視頻直播的權限。
  • 初始化請求Request類。SDK對每一個接口實現了對應的Request類和Response類,對應的禁止推流Request類須要傳入哪些參數,看API接口定義 恢復直播流推送API
  • 發起請求獲取結果。使用Client對象的getAcsResponse方法發起Request對象請求,並根據該方法反饋的反序列化的結果實例化爲對應接口的Response類。而且在執行該方法時能夠catch ServerException和ClientException異常類,當http status>=300且<500 SDK拋ClientException,表示客戶端錯誤。當http status>=500 SDK拋ServerException,表示服務器端錯誤。若是沒有拋出異常則表示接口調用成功。

 

0.1元開啓直播之旅

 

 

開年採購季,爲了讓更多用戶可以體驗和享受到視頻直播雲服務的便利,視頻產品推出了0.1元體驗包,配置清單以下:

原文連接

 

閱讀更多幹貨好文,請關注掃描如下二維碼:

相關文章
相關標籤/搜索