Какой формат наименее ресурсоемкий для процессора для передачи кадров высокого разрешения из ffmpeg в openCV?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Какой формат наименее ресурсоемкий для процессора для передачи кадров высокого разрешения из ffmpeg в openCV?

Сообщение Anonymous »

Я разрабатываю приложение для обработки RTSP-потока высокого разрешения (2560x1440) с IP-камеры с использованием OpenCV.
Что я пробовал
  • VideoCapture OpenCV:
    • Производительность была низкой, даже с CAP_PROP_FFMPEG.
  • FFmpeg с MJPEG:< /p>
    • Декодировал поток как MJPEG и создал маты OpenCV из буфера JPEG image2pipe.
    • Результат ниже Загрузка ЦП для OpenCV, но выше для FFmpeg.
  • Текущий подход:< /p>
    • Вывод необработанного видео в формате YUV420p из FFmpeg.
    • Создание матов OpenCV из каждого буфера кадра.
    • Достигает низкую загрузку ЦП FFmpeg и умеренно высокую загрузку ЦП OpenCV.
Текущая реализация

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

import subprocess
import cv2
import numpy as np

def stream_rtsp(rtsp_url):
# FFmpeg command to stream RTSP and output to pipe
ffmpeg_command = [
'ffmpeg',
'-hwaccel', 'auto',
'-i', rtsp_url,
'-pix_fmt', 'yuv420p',  # Use YUV420p format
'-vcodec', 'rawvideo',
'-an',  # Disable audio
'-sn',  # Disable subtitles
'-f', 'rawvideo',
'-'  # Output to pipe
]

# Start FFmpeg process
process = subprocess.Popen(ffmpeg_command, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)

# Frame dimensions
width, height = 2560, 1440
frame_size = width * height * 3 // 2  # YUV420p uses 1.5 bytes per pixel

while True:
# Read raw video frame from FFmpeg output
raw_frame = process.stdout.read(frame_size)
if not raw_frame:
break

yuv = np.frombuffer(raw_frame, np.uint8).reshape((height * 3 // 2, width))
frame = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR_I420)

processFrame(frame)

# Clean up
process.terminate()
cv2.destroyAllWindows()
Вопрос
Есть ли другие способы повысить производительность при обработке кадров высокого разрешения из RTSP-потока?


Подробнее здесь: https://stackoverflow.com/questions/790 ... from-ffmpe
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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