Как исправить потоковое видео с помощью PyAV, которое отображается в неправильном цвете?Python

Программы на Python
Anonymous
Как исправить потоковое видео с помощью PyAV, которое отображается в неправильном цвете?

Сообщение Anonymous »

Я пытаюсь создать видео из кадров в оттенках серого, но видео получается только с одним цветом (зеленым). Фреймы представляют собой пустые массивы

Код: Выделить всё

import av
import numpy as np

output = av.open("myvideo.mp4", 'w')
ovstream = output.add_stream('h264')
ovstream.width = 514
ovstream.height = 616

for frame in frames:
packet = av.packet.Packet(frame.data)
packet.stream = ovstream
output.mux(packet)

output.close()
попытка перевести
поток в серый цвет ни к чему не приводит.

Код: Выделить всё

ovstream.codec_context.pix_fmt = 'gray'
есть возможность перевести поток в серый режим (перед мультиплексированием), но я хочу избежать этого, поскольку это усложняет вычисления. благодаря этому видео получается в правильных цветах.

Код: Выделить всё

ovstream.encode(av.VideoFrame.from_ndarray(frame.data, format="gray"))
есть ли способ получить правильный цвет без необходимости перекодирования серого цвета?
Спасибо, если у вас есть какие-либо советы.>

Подробнее здесь: https://stackoverflow.com/questions/788 ... rong-color

Вернуться в «Python»