Видеопоток Raspberry Pi Zero W RTSP с использованием модуля камеры OV5647Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Видеопоток Raspberry Pi Zero W RTSP с использованием модуля камеры OV5647

Сообщение Anonymous »

Я пытаюсь передать потоковое видео с Raspberry Pi Zero W с модулем камеры OV5647 в формате H.264 через протокол потоковой передачи в реальном времени (RTSP). В качестве получателя я буду использовать ноутбук с Ubuntu 24 для просмотра потока.
Я провожу эксперимент, чтобы имитировать выгрузку вычислительных задач с камеры дрона и использовать пограничный узел для предварительная обработка и запрос облачных услуг компьютерного зрения. Поэтому необходимо, чтобы я использовал RTSP для создания потока, и крайне желательно, чтобы видео было закодировано в H.264.
Сценарий Python на Raspberry Pi Zero W:< /strong>

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

import subprocess
import time

# RTSP Streaming Parameters
streamPort = 554 # Default RTSP Port

def start_rtsp_stream(): # Starts RTSP Stream using libcamera
try:
cmd = [ # Set stream parameters to
'libcamera-vid',
'-t', '0', '-v',  # 0ms timeout, Verbose output for debugging
'--inline',
'--listen',
'--o', f'rtsp://0.0.0.0:{streamPort}/stream'  # Enable access from any IP
]

# Start subprocess
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print(f"RSTP stream started on rtsp://XXX.XXX.XXX.XXX:{streamPort}/stream")
print("Use a player like VLC to view the stream")

# Loop until interrupted

while True:
# stdoutput = process.stdout.readline() # read standard output
output = process.stderr.readline() # Read from stderr

# if stdoutput: # This was too volumous and I commented out to avoid the additional output
#print(stdoutput)
if output:
print(output.decode())  # If error, output.
time.sleep(1)

except KeyboardInterrupt: # Quit on Keyboard Interrupt
print("Stopping stream.")
process.terminate()
process.wait()

if __name__ == '__main__':
start_rtsp_stream()
Вывод[/b]
Когда я запускаю сценарий на Raspberry Pi, я получаю следующие результаты

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

camerapi@raspberrypi:~/Scripts $ python3 /home/camerapi/Scripts/StreamCamera.py
RSTP stream started on rtsp://XXX.XXX.XXX.XXX:554/stream
Use a player like VLC to view the stream
[16:07:06.541632480] [21589]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b

A bunch of camera details in here...

[16:07:06.979875052] [21589]  INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-YUV420 (1) 640x480-SGBRG10_CSI2P

[16:07:06.981470025] [21594]  INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA

A bunch more camera details here...

Camera started!

Viewfinder frame 0

#0 (0.00 fps) exp 33167.00 ag 6.38 dg 1.00

terminate called after throwing an instance of 'std::runtime_error'

what():  failed to open output file rtsp://0.0.0.0:554/stream
Я тоже пробовал:

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

libcamera-vid -t 0 -o rtsp://0.0.0.0:554/stream
Вывод

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

camerapi@raspberrypi:~/Scripts $ libcamera-vid -t 0 -o rtsp://0.0.0.0:554/stream
[16:12:09.513768085] [21704]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b
[16:12:09.885832770] [21708]  WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[16:12:09.906402420] [21708]  INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media3 and ISP device /dev/media1
[16:12:09.907872395] [21708]  INFO RPI pipeline_base.cpp:1126 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
Preview window unavailable
Mode selection for 640:480:12:P
SGBRG10_CSI2P,640x480/0 - Score: 1000
SGBRG10_CSI2P,1296x972/0 - Score: 1287
SGBRG10_CSI2P,1920x1080/0 - Score: 1636.67
SGBRG10_CSI2P,2592x1944/0 - Score: 1854
Stream configuration adjusted
[16:12:09.927770058] [21704]  INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-YUV420 (1) 640x480-SGBRG10_CSI2P
[16:12:09.930069019] [21708]  INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA
#0 (0.00 fps) exp 33167.00 ag 6.25 dg 1.00
terminate called after throwing an instance of 'std::runtime_error'
what():  failed to open output file rtsp://0.0.0.0:554/stream
Aborted
Я могу заставить камеру показывать видео на Raspberry Pi, вызвав libcamera show. Однако, похоже, у меня больше всего проблем с созданием потока RTSP.
Кто-нибудь, обладающий достаточным опытом, знает, что попробовать дальше?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Видеопоток Raspberry Pi Zero W RTSP с использованием модуля камеры OV5647
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Видеопоток Raspberry Pi Zero W RTSP с использованием модуля камеры OV5647
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • OpenCV + GSTREAMER не смог захватить видео RTSP, используя mmpvideodec на Radxa Zero 3W
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как прочитать камеры IP -камеры (RTSP) с Python плавно и без задержки и отставания для долгого чтения?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Libvlcsharp: ускорить загрузку rtsp/выбрать декодер rtsp
    Anonymous » » в форуме C#
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous

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