кодирование h.264 напрямую из numpy - PullRequest
1 голос
/ 11 июля 2019

Я хочу напрямую кодировать видео из бесчисленных массивов видеокадров. Open-cv предлагает такую ​​функциональность через cv2.VideoWriter, однако мне нужен кодек h.264, который недоступен. Лучшее, что у меня есть, - это использовать open-cv для записи видео, а затем перекодировать его через:

# write video from numpy arrays via cv2
out = cv2.VideoWriter("/tmp/video.mp4", cv2.VideoWriter_fourcc(*"mp4v"), fps, size)
for frame in frames:
    out.write(frame)
out.release()
# reencode video with ffmpeg
os.system("ffmpeg -y -i /tmp/video.mp4 -vcodec libx264 /tmp/video2.mp4")

Тем не менее, я думаю, что первое кодирование не меньше потерь, поэтому вместо этого я ищу решение, в котором я могу напрямую кодировать видео с python.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 11 июля 2019

scikit-video предоставляет возможность:

import skvideo.io

outputfile = "/tmp/video.mp4"
writer = skvideo.io.FFmpegWriter(outputfile, outputdict={'-vcodec': 'libx264'})
for frame in frames:
    writer.writeFrame(frame)
writer.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...