python获取视频帧的时间_如何从ffmpeg的获取实况视频帧和时间戳到Windows上的Python...

本文介绍了一种使用Python结合ffmpeg获取视频帧和时间戳的方法,通过创建两个线程分别处理ffmpeg的标准输出和错误输出,避免了帧和时间戳的混合。示例代码展示了如何读取视频流,保存每30帧为一张图片,并打印出帧详情信息。

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

重定向标准错误在Python工作。

所以不是这个pipe = sp.Popen(command, stdout = sp.PIPE, stderr = sp.PIPE)

做到这一点pipe = sp.Popen(command, stdout = sp.PIPE, stderr = sp.STDOUT)

我们可以通过添加一个异步调用避免重定向到阅读的ffmpeg的这两个标准流(stdout和stderr)。这将避免视频帧和时间戳的任何混合,从而避免错误分离。 因此修改原始代码以使用threading模块应该是这样的:

# Python script to read video frames and timestamps using ffmpeg

import subprocess as sp

import threading

import matplotlib.pyplot as plt

import numpy

import cv2

ffmpeg_command = [ 'ffmpeg',

'-nostats', # do not print extra statistics

#'-debug_ts', # -debug_ts could provide timestamps avoiding showinfo filter (-vcodec copy). Need to check by providing expected fps TODO

'-r', '30', # output 30 frames per second

'-i', 'e:\sample.wmv',

'-an','-sn', #-an, -sn disables audio and sub-title processing respectively

'-pix_fmt', 'rgb24',

'-vcodec', 'rawvideo',

#'-vcodec', 'copy', # very fast!, direct copy - Note

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值