首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从python中的输出读取Bytes图像

从python中的输出读取Bytes图像
EN

Stack Overflow用户
提问于 2020-02-05 10:34:36
回答 1查看 825关注 0票数 6

我使用imageio.get_reader(BytesIO(a), 'ffmpeg')加载一个字节图像,并将其保存为普通图像。

但是,当我使用imageio.get_reader(BytesIO(a), 'ffmpeg')读取图像时,下面的错误会抛出

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio/core/functions.py", line 186, in get_reader
    return format.get_reader(request)
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio/core/format.py", line 164, in get_reader
    return self.Reader(self, request)
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio/core/format.py", line 214, in __init__
    self._open(**self.request.kwargs.copy())
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio/plugins/ffmpeg.py", line 323, in _open
    self._initialize()
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio/plugins/ffmpeg.py", line 466, in _initialize
    self._meta.update(self._read_gen.__next__())
  File "/home/tango/anaconda3/lib/python3.6/site-packages/imageio_ffmpeg/_io.py", line 150, in read_frames
    raise IOError(fmt.format(err2))
OSError: Could not load meta information
=== stderr ===

ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 7.3.0 (crosstool-NG 1.23.0.449-a04d0)
  configuration: --prefix=/home/tango/anaconda3 --cc=/home/conda/feedstock_root/build_artifacts/ffmpeg_1566210161358/_build_env/bin/x86_64-conda_cos6-linux-gnu-cc --disable-doc --disable-openssl --enable-avresample --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-libfreetype --enable-libopenh264 --enable-libx264 --enable-pic --enable-pthreads --enable-shared --enable-static --enable-version3 --enable-zlib --enable-libmp3lame
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
[matroska,webm @ 0x5619b9da3cc0] File ended prematurely
[matroska,webm @ 0x5619b9da3cc0] Could not find codec parameters for stream 0 (Video: h264, none, 1280x720): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, matroska,webm, from '/tmp/imageio_zm6hhpgr':
  Metadata:
    title           : Kinesis Video SDK
    encoder         : Kinesis Video SDK 1.0.0
    AWS_KINESISVIDEO_FRAGMENT_NUMBER: 91343852333183888465720004820715065721442989478
    AWS_KINESISVIDEO_SERVER_TIMESTAMP: 1580791384.096
    AWS_KINESISVIDEO_PRODUCER_TIMESTAMP: 1580791377.843
  Duration: N/A, bitrate: N/A
    Stream #0:0(eng): Video: h264, none, 1280x720, SAR 1:1 DAR 16:9, 1k tbr, 1k tbn, 2k tbc (default)
    Metadata:
      title           : kinesis_video
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!

以上读取MKV字节文件的方法是基于此thread完成的。

或是否有任何方法来解析和读取MKV字节文件.

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 08:20:47

老问题,但我会留给未来的读者一个答案:)

通常,如果您有一个字节字符串来编码视频(或图像),那么您很有可能直接将它传递到ImageIO的高级API中,并且它可以直接读取这些字节。对于MKV (和其他一些视频格式),ImageIO需要一些帮助,因为当前的ffmpeg插件与字节字符串斗争。有一个新的插件来解决这个问题和其他问题。

ImageIO<2.15.0

代码语言:javascript
运行
复制
import imageio as iio

req = iio.core.Request(mkv_bytes, "r")

# note: this is where imageIO needs some help, see
# https://github.com/imageio/imageio/issues/686
req._extension = ".mkv"

first_frame = iio.imread(req)

ImageIO>2.15.0 (本周发布- W6 2022)

代码语言:javascript
运行
复制
import imageio as iio

first_frame = iio.v3.imread(mkv_bytes, format_hint=".mkv")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60073859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档