Считайте изображение байтов из вывода Amazon Kinesis в python - PullRequest
7 голосов
/ 05 февраля 2020

Я использовал imageio.get_reader(BytesIO(a), 'ffmpeg'), чтобы загрузить байтовое изображение и сохранить его как обычное изображение.

Но при чтении изображения с использованием imageio.get_reader(BytesIO(a), 'ffmpeg')

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!
* 1007 возникает ошибка ниже. Приведенный выше подход к чтению файла байтов MKV был сделан на основе этого потока

Или существует какой-либо подход к анализу и чтению файла байтов MKV.

...