因为我是在root用户上进行操作的,所以下面不会使用sudo,如果有因为权限问题导致安装失败的,可以在指令前加上sudo
1、安装环境
ffmpeg-python安装
pip3 install ffmpeg-python
1.1 安装成功打印:
1.2 使用conda进行ffmpeg的安装
conda install ffmpeg
conda的使用可以参考:ubuntu环境中安装conda-CSDN博客
安装成功截图:
2、代码中解读
import ffmpeg
import osif __name__ == "__main__":
path = os.getcwd()
video1 = "family_31_1080P-ba2e8f268734.mkv"
stream_infos = ffmpeg.probe(video1)['streams']
# videos = [s for s in stream_infos if s['codec_type'] == 'video']
# audios = [s for s in stream_infos if s['codec_type'] == 'audio']
# subtitles = [s for s in stream_infos if s['codec_type'] == 'subtitle']
dics = {}
for info in stream_infos:
name = f"{info['codec_type'][0]}{info['index']}"
# 编码名
if 'codec_name' in info.keys():
dics[f"{name}_codec"] = info['codec_name']
# 媒体文件的其实时间
if 'start_time' in info.keys():
dics[f"{name}_start_time"] = info['start_time']
# 包含B帧信息
if 'has_b_frames' in info.keys():
dics[f"{name}_has_b_frames"] = info['has_b_frames']
# 帧的高x宽
if 'width' in info.keys() and 'height' in info.keys():
dics[f"{name}_height*width"] = f"{info['height']}*{info['width']}"
# 平均帧率
if 'avg_frame_rate' in info.keys():
dics[f"{name}_avg_frame_rate"] = {info['avg_frame_rate']}
# 实际帧率
if 'r_frame_rate' in info.keys():
dics[f"{name}_r_frame_rate"] = info['r_frame_rate']
# 媒体文件的总时间长度
if 'duration' in info.keys():
dics[f"{name}_duration"] = info['duration']
# 图像显示的色彩格式
if 'pix_fmt' in info.keys():
dicts[f"{name}_pix_fmt"] = info['fix_fmt']
# 编码的level
if 'level' in info.keys():
dics[f"{name}_level"] = info['level']
# 媒体显示宽高比
if 'display_aspect_ratio' in info.keys():
dics[f"{name}_display_aspect_ratio"] = info['display_aspect_ratio']
# 视频的扫描方式
if 'field_order' in info.keys():
dics[f"{name}_field_order"] = info['field_order']
# 指图像中色度信息(例如红色、绿色和蓝色)的相对位置
if 'chroma_location' in info.keys():
dics[f"{name}_chroma_location"] = info['chroma_location']
# 指视频的总时长,以时间戳为单位
if 'duration_ts' in info.keys():
dics[f"{name}_duration_ts"] = info['duration_ts']
print(dics)
3、显示结果如下:
因为没有对读取到的信息做处理,所以看起来不太好看。有需要的可以自己修饰下