FFMPEG - локальное видео для потоковой передачи UDP в OpenCV - качество видео ухудшается - PullRequest
0 голосов
/ 26 апреля 2020

Моя цель состоит в том, чтобы перенаправить локальный видеоконтент / экранную передачу рабочего стола в поток UDP, который мне нужно обработать в сценарии Python.

Вот сценарий FFMPEG, который я использую:

ffmpeg -re -i C:\Users\test\Downloads\out.ts -strict -2 -c:v copy -an -preset slower -tune stillimage -b 11200k -f rawvideo udp://127.0.0.1:5000

А вот простой сценарий Python, предназначенный для чтения потока:

import cv2

cap = cv2.VideoCapture('udp://127.0.0.1:5000',cv2.CAP_FFMPEG)
if not cap.isOpened():
    print('VideoCapture not opened')
    exit(-1)
width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)  # float
height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)  # float
print(str(width))
print(str(height))
while True:
    ret, frame = cap.read()
    imgray = frame[int(round((height/100)*70,0)):int(round((width/100)*42,0)), int(round((height/100)*74,0)):int(round((width/100)*54,0))]
    if not ret:
        print('frame empty')
        break
    cv2.imshow('image', imgray)
    if cv2.waitKey(1)&0XFF == ord('q'):
        break
cap.release()

Я могу визуализировать часть потокового видео, как и ожидалось, но я Я сталкиваюсь с большой проблемой в ухудшении качества видео, особенно видео артефакт, вероятно, из-за пропущенной обработки пакета:

enter image description here

Также это журнал ошибок, который я получаю из сценария:

[h264 @ 0000026eb272f280] error while decoding MB 105 66, bytestream -21
[h264 @ 0000026eb2fcb740] error while decoding MB 100 53, bytestream -11
[h264 @ 0000026eb272f280] error while decoding MB 32 22, bytestream -11
[h264 @ 0000026ead9ee300] error while decoding MB 60 20, bytestream -25
[h264 @ 0000026eb27f00c0] error while decoding MB 9 62, bytestream -5
[h264 @ 0000026ead9ee780] error while decoding MB 85 44, bytestream -5
[h264 @ 0000026eb27f0800] error while decoding MB 64 25, bytestream -15
[h264 @ 0000026eb272f280] error while decoding MB 112 23, bytestream -17
[h264 @ 0000026eb2735200] error while decoding MB 30 21, bytestream -7

На самом деле меня не волнует текучесть видео, я также могу уменьшить FPS, важна качество видео. Не уверен, что я неправильно выполняю сценарий python, или я использую неправильную команду FFMPEG.

Большое спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...