ffmpeg使用tee實現單次編碼多路輸出

ffmpeg使用tee實現單次編碼多路輸出

tee簡介

首先貼一下官方手冊的連接:https://ffmpeg.org/ffmpeg-formats.html#teehtml

tee muxer能夠將相同的數據寫到多個文件或者其它的muxer。例如:它能夠同時將一路視頻流輸出到網絡和本地磁盤。與ffmpeg的默認多路輸出不一樣的是,用tee只編碼一次。shell

tee框圖

語法

和普通的ffmpeg命令行相比,使用tee主要是兩點區別:網絡

1.主幹的'-f'指定'tee';編碼

2.輸出路徑是由'|'分隔的各個路徑集合。命令行

#例如:
ffmpeg -i input.file -acodec aac -vcodec h264 -f tee -map 0:v -map 0:a "tee1.mp4|tee2.flv"

具體的,tee還支持一些參數:code

f
直接指定封裝格式。有的時候靠ffmpeg根據輸出路徑猜封裝格式是不牢靠的,直接指定格式,簡單暴力。
    
bsfs[/spec]
設置比特率過濾器。

select
選擇指定的流輸出,默認是使用所有流(主幹)。
實例
# 1. 單路輸入,輸出一路mp4本地,一路TS over UDP (其中TS over UDP須要指定格式)
ffmpeg -re -i Meerkats.mp4 -acodec aac -vcodec h264 -f tee -map 0:v -map 0:a "tee1.mp4|[f=mpegts]udp://10.33.2.27:9999"

# 2. 使用ffmpeg進行編碼,實現單路輸入,四路輸出(一路rtmp,一路ts,一路mp4,一路aac)。
ffmpeg -re -i Meerkats.mp4 -acodec aac -vcodec h264 -flags +global_header -strict experimental -f tee -map 0:v -map 0:a "[f=flv]rtmp://10.33.1.48/live1/tee1|[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
相關文章
相關標籤/搜索