前言
Github
地址:Github
簡(jiǎn)書地址:簡(jiǎn)書
專輯地址:FFplay專輯
33. 多媒體資源
以下是當(dāng)前可用多媒體源的說(shuō)明吠式。
33.1 amovie
這與電影源相同运褪,但默認(rèn)情況下會(huì)選擇音頻流。
33.2 movie
從電影容器中讀取音頻和/或視頻流。
它接受以下參數(shù):
filename
要讀取的資源的名稱(不一定是文件;它也可以是通過(guò)某種協(xié)議訪問(wèn)的設(shè)備或流)。
format_name腹鹉,f
指定要讀取的影片的格式,可以是容器的名稱或輸入設(shè)備敷硅。如果未指定功咒,則從movie_name
或通過(guò)探測(cè)猜測(cè)格式。
seek_point绞蹦,sp
以秒為單位指定搜索點(diǎn)力奋。幀將從該搜索點(diǎn)開(kāi)始輸出。使用av_strtod
計(jì)算參數(shù)幽七,因此數(shù)值可以以IS
后綴為后綴景殷。默認(rèn)值為0
。
streams, s
指定要讀取的流澡屡”醭梗可以指定多個(gè)流,用+
分隔挪蹭。然后,源將以相同的順序具有盡可能多的輸出休偶。具體的語(yǔ)法在(ffmpeg)流說(shuō)明符
中進(jìn)行了解釋梁厉。兩個(gè)特殊名稱dv
和da
分別指定默認(rèn)(最適合)的視頻和音頻流。如果過(guò)濾器被稱為amovie
踏兜,則默認(rèn)為dv
或da
词顾。
stream_index,si
指定要讀取的視頻流的索引碱妆。如果值為-1
肉盹,將自動(dòng)選擇最合適的視頻流。默認(rèn)值為-1
疹尾。已過(guò)時(shí)上忍。如果過(guò)濾器被稱為amovie
骤肛,它將選擇音頻而不是視頻。
loop
指定按順序讀取流的次數(shù)窍蓝。如果值為0
腋颠,則流將無(wú)限循環(huán)。默認(rèn)值為1
吓笙。
請(qǐng)注意淑玫,當(dāng)影片循環(huán)播放時(shí),源時(shí)間戳不會(huì)更改面睛,因此它將生成非單調(diào)增加的時(shí)間戳絮蒿。
discontinuity
指定幀之間的時(shí)間差,超過(guò)該時(shí)間點(diǎn)叁鉴,該點(diǎn)被視為時(shí)間戳不連續(xù)性土涝,通過(guò)調(diào)整后面的時(shí)間戳來(lái)刪除該時(shí)間戳。
它允許在濾鏡圖的主輸入上疊加第二個(gè)視頻亲茅,如下圖所示:
input -----------> deltapts0 --> overlay --> output
^
|
movie --> scale--> deltapts1 -------+
33.2.1 示例
-
從
AVI
文件in.avi
開(kāi)始跳過(guò)3.2
秒回铛,并將其覆蓋在標(biāo)有in
的輸入頂部:movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out]
-
從
video4linux2
設(shè)備讀取,并將其覆蓋在標(biāo)記為in
的輸入之上:movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over]; [in] setpts=PTS-STARTPTS [main]; [main][over] overlay=16:16 [out]
-
從
dvd.vob
讀取第一個(gè)視頻流和ID
為0x81
的音頻流; 視頻連接到名為video
的pad
克锣,音頻連接到名為audio
的pad
:movie=dvd.vob:s=v:0+#0x81 [video] [audio]
33.2.2 命令行
movie
和amovie
都支持以下命令:
seek
使用av_seek_frame
執(zhí)行搜索茵肃。 語(yǔ)法是:seek stream_index|timestamp|flags
1: stream_index
:如果stream_index
為-1
,則選擇默認(rèn)流袭祟,并且時(shí)間戳自動(dòng)從AV_TIME_BASE
單位轉(zhuǎn)換為特定于流的time_base
验残。
2: timestamp
:AVStream.time_base
單位中的時(shí)間戳,如果沒(méi)有指定流巾乳,則為AV_TIME_BASE
單位中的時(shí)間戳您没。
3: flags
:選擇方向和搜索模式的標(biāo)志。
get_duration
以AV_TIME_BASE
為單位獲取電影持續(xù)時(shí)間胆绊。