在 Python 中读取 h264 流

ver*_*man 5 python opencv ffmpeg numpy stream

我正在尝试从Parrot Bebop 2无人机读取视频流。视频流作为 H264 流作为“套接字”写入文件。

$ ffmpeg -i [STREAM]
Input #0, h264, from 'stream_h264':
  Duration: N/A, bitrate: N/A
  Stream #0:0: Video: h264 (Constrained Baseline), 1 reference frame, yuv420p(progressive, left), 1280x720, 23.98 fps, 23.98 tbr, 1200k tbn, 47.95 tbc
Run Code Online (Sandbox Code Playgroud)

使用以下参数在 MPlayer 中读取视频流不是问题。使用 VLC 或 ffmpeg 播放它也不应该太难。对于 MPlayer,以下工作:

mplayer -fs -demuxer h264es -benchmark stream_h264
Run Code Online (Sandbox Code Playgroud)

这以高分辨率播放流。但是,我的目标是使用 Python(主要是 OpenCV)对帧执行图像处理。因此,我想将帧读入 NumPy 数组。我已经考虑过使用,cv2.VideoCapture但这似乎不适用于我的流。其他(有点容易)使用我不知道的选项,因此我的问题是是否有人推荐我如何阅读 Python 中的视频帧?

非常欢迎所有建议!