opencv、FFmpeg 等工具如何读取 bytes 对象
opencv
、FFmpeg
等工具如何读取视频都是,给一个 filename,让他们自己去硬盘上读取视频文件。
但是我有如下场景:一个 http
服务,客户端传过来一个视频文件,这个时候收到后已经是一个在内存中的 bytes
对象了,如果要用 opencv、FFmpeg 对视频做处理的话,就需要先把视频 bytes 写到硬盘,再给 filename 给 opencv、FFmpeg。
我感觉不如直接把内存中的 bytes 对象给 opencv、FFmpeg 更好,但是 opencv、FFmpeg 貌似是不支持这么做的!
有什么解决办法吗?
参考文章:
Streaming video in memory with OpenCV VideoWriter and Python BytesIO
回答:
ffmpeg支持喂管道,通过管道喂给ffmpeg就行了
回答:
如果是流式数据类似264 265等等,可以一帧帧解码的,你就做一个解析,把数据解析成一个个NALU,然后一个个喂到解码函数里,直接用就好。
貌似ffmpeg有直接解析流的api,不过要配合RTMP,RTSP等协议。
以上是 opencv、FFmpeg 等工具如何读取 bytes 对象 的全部内容, 来源链接: utcz.com/p/938291.html