使用 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"
这将打印视频流的像素格式。所有具有 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 步中打印的读数。结果将是 1
或 0
.
在我的 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"
这将打印视频流的像素格式。所有具有 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 步中打印的读数。结果将是 1
或 0
.