簡體   English   中英

使用 ffmpeg/ffprobe 檢測視頻中 alpha 通道的好方法

[英]A good way to detect alpha channel in a video using ffmpeg/ffprobe

在我的 Django 應用程序中,上傳的視頻文件使用 ffmpeg 轉碼為某種特定格式。

我現在需要一種方法來可靠地檢測上傳的視頻是否具有 alpha 通道。 我通常使用 ffprobe 來獲取視頻元數據。 你能指出我正確的方向嗎?

您可以使用 ffprobe 分兩步執行此操作。

#1

ffprobe -v 0 -select_streams v:0 -show_entries stream=pix_fmt -of compact=p=0:nk=1 "$FILE"

這將打印視頻 stream 的像素格式。 所有帶有 alpha 分量的像素格式的名稱中都有a ,但並非所有帶有a格式都有 alpha。 所以,跑..

#2

ffprobe -v 0 -show_entries pixel_format=name:flags=alpha -of compact=p=0  | grep "$PIX_FMT|" | grep -oP "(?<=alpha=)\d"

其中 $PIX_FMT 是在步驟 1 中打印的讀數。結果將為10

我就是這樣做的。 關閉橫幅,並將-loglevel設置為僅錯誤,pipe 結果為 grep for "pix_fmt"

ffprobe -hide_banner -loglevel error -show_entries \
   stream "input.png" | grep "pix_fmt"

返回pix_fmt=rgba

對於 JPEG 或其他缺少 alpha 透明度通道的文件,期望 output 為: pix_fmt=yuvj444p

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM