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

生成播放列表

生成邊轉邊播播放列表能夠對視頻生成標準HLS協議的m3u8播放列表文件,無需提前生成TS文件就可立即播放且按播放進度動態轉碼。與傳統離線轉碼相比,顯著縮短了轉碼等待時間,且按需轉碼能大幅降低轉碼和存儲成本。

使用場景

  • 網盤:用戶上傳視頻到網盤,各種網盤客戶端立即能根據網絡情況選擇不同的分辨率進行播放。既保證了播放的實時性,又能確保視頻在不同設備上的兼容性。網盤中大部分視頻都是冷視頻,冷視頻沒有被用戶播放不會觸發轉碼,降低存儲成本。

  • 聊天軟件視頻預覽:在即時通訊或社交媒體平臺中,發送方把視頻發送完畢(發送到服務端存儲完成),接收方立刻可以開始播放視頻,提高交流的實時性。歷史聊天記錄中長期不被觀看的視頻,轉碼生成的視頻文件可以定期清理,再次播放時可立刻播放。

  • 網絡論壇與博客交流:在這些平臺分享視頻時,使用邊轉邊播技術,使得其他用戶無需等待視頻轉碼完成就可以觀看,同時保持視頻內容的流暢性、清晰度和兼容性。

注意事項

  • 生成播放列表需要使用到OSS的同步數據處理能力(x-oss-process)。請在OSS配額中心申請“開啟新版本IMM Get數據處理能力”和“開啟新版本IMM Post數據處理能力”。

  • 使用邊轉邊播前,需要先綁定IMM Project。關于控制臺和API如何綁定,請參見快速入門AttachOSSBucket

  • 不支持匿名訪問。

  • 必須擁有IMM處理所需的相關權限。更多信息,請參見權限

  • 更多注意事項請參見IMM邊轉邊播功能說明IMM生成播放列表API

參數說明

操作說明:hls/m3u8

具體參數如下表所示:

參數

類型

是否必須

描述

ss

int

生成播放列表的起始時間點,單位為毫秒(ms)。取值范圍如下:

  • 0(默認值)或不填表示從源視頻起始時間點開始。

  • 大于0表示從源視頻所設置的時間點開始。

說明

通過與參數t一同設置可以對源視頻的部分內容生成播放列表。

t

int

生成播放列表的轉碼時長。單位為毫秒(ms),取值范圍如下:

  • 0(默認值)或不填表示持續到源視頻結尾。

  • 大于0表示從生成播放列表的起始時間點持續所設置的時長。

說明

當設定參數所對應的時間點超過源視頻結尾時,按默認值處理。

ta

int

觸發邊轉邊播時向前轉碼的ts文件數量。默認向前轉碼2分鐘時長的視頻。

示例:st10000,則ta默認為12。您可以指定該參數控制異步向前轉碼的數量,取值范圍為[10,30]。

st

int

單個ts文件的切片時長。單位為毫秒(ms),默認為10000,取值范圍為[5000,15000]。

initd

int

生成播放列表時初始轉碼的時長,單位為毫秒(ms),默認值為30000。

  • 當所設置的時長為0時,不預轉。

  • 當設置為負數或超過源視頻時長時,將初始轉碼整段視頻。

  • 當所設置的時長位于TS文件中間時,將持續轉碼到TS文件結束位置。

說明

該參數主要用于加快視頻初次播放的等待時間,提升播放體驗。若您需要替換傳統VOD業務場景則可嘗試初始轉碼整段視頻。

vcodec

string

視頻codec(編碼格式)。取值:

  • h264(默認值):h264編碼格式。

  • h265:h265編碼格式。

fps

float

視頻幀率,默認與源視頻一致。

fpsopt

int

視頻幀率選項。取值:

  • 0:始終使用目標幀率。

  • 1(默認值):源視頻幀率小于fps時使用源視頻幀率。

  • 2:源視頻幀率小于fps時返回失敗。

說明

該參數需要與參數fps一同設置。

pixfmt

string

像素格式,默認與源視頻一致。取值范圍如下:

  • yuv420p

  • yuv422p

  • yuv444p

  • yuv420p10le

  • yuv422p10le

  • yuv444p10le

s

string

輸出視頻的分辨率,格式為寬 x 高,默認與源視頻分辨率一致。

  • 格式為w x h,即寬 x 高。

  • 寬和高的取值應為2的倍數,且取值范圍為64~4096。例如:4096x4096、64x64等。

sopt

string

分辨率選項。取值:

  • 0:始終使用設置的目標視頻分辨率。

  • 1(默認值):源視頻分辨率面積小于設置的目標視頻分辨率面積時使用源視頻分辨率。

  • 2:源視頻分辨率面積小于設置的目標視頻分辨率面積時返回失敗。

scaletype

string

縮放模式。取值范圍如下:

  • stretch(默認值):固定寬高或長短邊,強制縮放,拉伸以填滿空白部分。

  • crop:等比縮放,縮放為延伸出指定寬高或長短邊的矩形框外的最小分辨率,然后將超出的部分進行居中裁剪。

  • fill:等比縮放,縮放為指定寬高或長短邊的矩形內的最大分辨率,然后使用黑色居中填充空白部分。

  • fit:等比縮放,縮放為指定寬高或長短邊的矩形內的最大分辨率。

說明

該參數需要與參數s一同設置。

arotate

int

自適應分辨率方向。取值:

  • 0(默認值):關閉。

  • 1:打開。

vb

int

視頻流碼率,單位為比特每秒(bit/s)。

如果crf、vb都不填,則crf默認值是23;如果設置了vbopt,則vb參數必填。

vbopt

int

視頻碼率選項。取值范圍如下:

  • 0:始終使用設置的目標視頻碼率。

  • 1(默認值):源視頻碼率小于設置的目標視頻碼率時使用源視頻碼率。

  • 2:源視頻碼率小于設置的目標視頻碼率時返回失敗。

crf

float

指定恒定質量模式。與參數vb互斥,取值范圍為[0,51],數值越大畫質越差,建議取值范圍為[18,38]。如果未填寫crf、vb,默認值是23。

maxrate

int

動態碼率下限定最大碼率。使用該參數時,必須指定參數bufsize。

說明

該參數需要與參數crf一起使用才有效。

bufsize

int

動態碼率下解碼緩存大小,單位為比特每秒(bit/s)。

說明

該參數需要與參數crf一起使用才有效。

an

int

是否禁用音頻流。取值:

  • 0(默認值):不禁用。

  • 1:禁用。

acodec

string

音頻編碼方式。取值為:acc。

ar

int

音頻采樣率。單位為赫茲(Hz)。默認保持源音頻的采樣頻率。取值范圍:

  • 8000

  • 11025

  • 12000

  • 16000

  • 22050

  • 24000

  • 32000

  • 44100

  • 48000

  • 88200

  • 96000

ac

int

聲道數。默認保持源音頻的聲道數。取值范圍:[1,8]。

aq

int

音頻質量,與參數ab互斥,取值范圍:0~100(值越大質量越高)。

ab

int

音頻碼率,與參數aq互斥,單位為比特每秒(bit/s)。取值范圍:1000~10000000。

abopt

int

音頻碼率選項。取值:

  • 0:始終使用目標音頻碼率。

  • 1(默認值):源視頻幀率小于ab時使用源視頻碼率。

  • 2:源視頻幀率小于ab時返回失敗。

說明

生成邊轉邊播播放列表時也會用到sys/saveas參數。更多信息,請參見另存為

使用步驟

使用邊轉邊播分為以下兩個步驟:

說明

生成播放列表之后,您也可以參考IMM文檔的邊轉邊播介紹來操作播放。

1. 將視頻生成邊轉邊播播放列表

轉碼信息

  • 轉碼前

    • 視頻格式:AVI

    • 視頻名稱:oss://video-demo/example.avi

    • 視頻起始位置:跳過前面15

    • 視頻轉碼長度:1800

  • 處理方式:生成播放列表

  • 轉碼后

    • 轉碼分片大小:10

    • 預轉視頻長度:30

    • 視頻信息

      • 視頻流格式:H.264

      • 視頻分辨率:1280x720

      • 視頻幀率:25 fps

      • 視頻碼率:2 Mbps

    • 音頻信息

      • 音頻流格式:AAC

      • 音頻碼率:128 Kbps

    • 文件存儲路徑前綴:oss://outbucket/outobjprefix/media

請求示例

POST /example.avi?x-oss-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6q**************:77Dv****************

x-oss-process=hls/m3u8,ss_15000,t_1800000,vcodec_h264,fps_25,fpsopt_1,s_1280x720,sopt_1,scaletype_fit,arotate_1,vb_2000000,vbopt_1,acodec_aac,ar_44100,ac_2,ab_128000,abopt_1,st_10000,initd_30000|sys/saveas,o_b3V0b2JqcHJlZml4L21lZGlh,b_b3V0YnVja2V0

響應示例

HTTP/1.1 200 OK
Server: AliyunOSS
Date: Wed, 25 May 2022 12:43:57 GMT
Content-Type: application/json;charset=utf-8
Content-Length: 161
Connection: keep-alive
x-oss-request-id: 628E2481184E20F26C000009
x-oss-transfer-acc-type: acc-none
x-oss-data-location: oss-cn-hangzhou-a
ETag: "D0F162350DA037F4DC2A142B2E116BD0"
Last-Modified: Wed, 25 May 2022 12:20:34 GMT
x-oss-object-type: Normal
x-oss-hash-crc64ecma: 2040549661341440100
x-oss-storage-class: Standard
x-oss-server-time: 12437

{"Duration":1800,"RequestId":"********-37E6-5996-8425-********","VideoPlaylist":[{"FrameRate":"25","Resolution":"1280x720","Token":"f93c43079**********1269608ebc86e","URI":"oss://outbucket/outobjprefix/media.m3u8"}]}

2. 使用hls/sign簽名邊轉邊播

OSS對音視頻數據的訪問提供了動態簽名機制,即只需在首次訪問m3u8文件時在URL中添加x-oss-process=hls/sign,live_1, OSS將對返回的播放列表中的所有ts地址自動按照與m3u8完全相同的方式進行簽名。

  • hls/sign簽名方式:

# -*- coding: utf-8 -*-
import os
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

# 填寫Bucket所在地域對應的Endpoint。請按實際情況填寫。
endpoint = 'yourEndpoint'

# 從環境變量中獲取訪問憑證。運行本代碼示例之前,請確保已設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 目標Bucket名稱。
bucket_name = 'your-oss-bucket-name'
# output/media.m3u8填寫生成的播放列表名稱。
key = 'output/media.m3u8'

# 指定Bucket實例,所有文件相關的方法都需要通過Bucket實例來調用。
# 必須使用oss2.AuthV2的簽名方式。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', bucket_name)

# x-oss-process的處理方式為hls/sign,live_1。
params = {}
params.update({oss2.Bucket.PROCESS: 'hls/sign,live_1'})

# 簽名URL。
# 生成簽名URL時,OSS默認會對Object完整路徑中的正斜線(/)進行轉義,從而導致生成的簽名URL無法直接使用。
# 設置slash_safe為True,OSS不會對Object完整路徑中的正斜線(/)進行轉義,此時生成的簽名URL可以直接使用。
url = bucket.sign_url('GET', key, 7200, params=params, slash_safe=True)

# 生成的URL可以直接在HLS播放器中播放。
print(url)
  • 原始m3u8內容

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10.0,
media-c14709808479b31566b50f2f8b93fe1a-0.ts
#EXTINF:10.0,
media-c14709808479b31566b50f2f8b93fe1a-1.ts
#EXTINF:10.0,
media-c14709808479b31566b50f2f8b93fe1a-2.ts
#EXTINF:10.0,
media-c14709808479b31566b50f2f8b93fe1a-3.ts
#EXT-X-ENDLIST
  • 使用hls/sign簽名后返回的內容:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10.000,
media-c14709808479b31566b50f2f8b93fe1a-0.ts?x-oss-process=if_status_eq_404{hls/ts,from_b3V0cHV0L21lZGlhLm0zdTg}&x-oss-expires=1710457284&x-oss-signature-version=OSS2&x-oss-access-key-id=****fEAub****&x-oss-signature=****VR3gy****
#EXTINF:10.000,
media-c14709808479b31566b50f2f8b93fe1a-1.ts?x-oss-process=if_status_eq_404{hls/ts,from_b3V0cHV0L21lZGlhLm0zdTg}&x-oss-expires=1710457284&x-oss-signature-version=OSS2&x-oss-access-key-id=****fEAub****&x-oss-signature=****VR3gy****
#EXTINF:10.000,
media-c14709808479b31566b50f2f8b93fe1a-2.ts?x-oss-process=if_status_eq_404{hls/ts,from_b3V0cHV0L21lZGlhLm0zdTg}&x-oss-expires=1710457284&x-oss-signature-version=OSS2&x-oss-access-key-id=****fEAub****&x-oss-signature=****VR3gy****
#EXTINF:10.000,
media-c14709808479b31566b50f2f8b93fe1a-3.ts?x-oss-process=if_status_eq_404{hls/ts,from_b3V0cHV0L21lZGlhLm0zdTg}&x-oss-expires=1710457284&x-oss-signature-version=OSS2&x-oss-access-key-id=****fEAub****&x-oss-signature=****VR3gy****
#EXT-X-ENDLIST

使用SDK

生成邊轉邊播播放列表僅支持同步處理,SDK使用方法請參見使用SDK

常見問題

輸出文件包括哪些?

我們會根據您指定的輸入路徑前綴生成m3u8文件和ts文件。m3u8文件立刻生成。如果您指定了預轉視頻長度,會異步生成預轉長度的ts文件(例如您指定了預轉長度是30秒,切片長度為10秒,則生成3ts文件)。未指定預轉的部分會在視頻播放時才會按需觸發異步轉碼(例如1:視頻從未播放,則不會對未指定預轉的部分生成ts文件;例如2:視頻從15分鐘的地方開始播放,只會從15分鐘的位置開始轉碼)。生成文件的目錄樹如下:

.
├── outobjprefix.m3u8
├── outobjprefix-92376fbb-171f-4259-913f-705f7ee02f2s-0.ts
├── outobjprefix-92376fbb-171f-4259-913f-705f7ee02f2s-1.ts
├── outobjprefix-92376fbb-171f-4259-913f-705f7ee02f2s-2.ts
├── outobjprefix-92376fbb-171f-4259-913f-705f7ee02f2s-3.ts

已經生成的ts文件手工刪除后能正常播放嗎?

可以。只要視頻源文件和m3u8播放列表未被刪除,手動刪除部分或全部ts文件后仍能正常播放,因為當m3u8播放列表再次被請求時,會觸發重新生成ts文件。這種方式允許對之前已播放但長時間未被觀看的視頻的ts文件進行清理,以此減少存儲成本,而不影響視頻將來的重新播放。

能使用非邊轉邊播的m3u8文件做邊轉邊播嗎?

不可以。不能使用非邊轉邊播生成的m3u8文件實現邊轉邊播功能。