pandas生成视频文件的gop组

本文介绍如何使用FFmpeg工具提取视频流帧信息,并通过Python Pandas进行处理,最终生成GOP(Group of Pictures)列表。该过程涉及ffprobe命令的使用、CSV文件读取及数据处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#先用ffprobe生成视频流的帧信息
#ffprobe -show_frames -select_streams v -of csv -i cp_b_vbr.ts >cp_b_vbr.csv
import pandas as pd

csvfile = 'cp_b_vbr.csv'
#header=None数据第一行开始,sep=','逗号分隔
csvpd = pd.read_table(csvfile,sep=',',encoding='utf-8',low_memory=False,header=None)

#列名
csvpd.columns = ['frame','media_type','stream_index','key_frame','pkt_pts','pkt_pts_time','pkt_dts','pkt_dts_time','best_effort_timestamp','best_effort_timestamp_time','pkt_duration','pkt_duration_time','pkt_pos','pkt_size','width','height','pix_fmt','sample_aspect_ratio','pict_type','coded_picture_number','display_picture_number','interlaced_frame','top_field_first','repeat_pict','color_range','color_space','color_primaries','color_transfer','chroma_location']

#生成gop组(I开始到下一个I之前截止),下面是没办法的办法
#pict_type(series)列变成list再变成string
picttype = ''.join(csvpd.pict_type.tolist())

#把I替换成",I",然后用逗号切分成list
gop = picttype.replace('I',',I').split(',')

#切分之后,list的第一个元素是空的,remove掉第一个元素。
gop.remove(gop[0])

for i in gop:
    print(i) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值