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

weixin_33881753發表於2016-09-10

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

tee簡介

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

tee muxer可以將相同的資料寫到多個檔案或者其它的muxer。例如:它可以同時將一路視訊流輸出到網路和本地磁碟。與ffmpeg的預設多路輸出不同的是,用tee只編碼一次。

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還支援一些引數:

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"



轉載於:https://my.oschina.net/zhangxu0512/blog/745273

相關文章