哈密建设厅网站,wordpress打开文章很慢,一起做网店官网,北京故宫网页设计Raspberry Pi3B之Rpanion-gst和ffmpeg验证 1. 源由2. 分析3. 环境搭建步骤1#xff1a;安装镜像步骤2#xff1a;系统更新步骤3#xff1a;安装numpy组件步骤4#xff1a;安装python3-picamera2组件步骤4#xff1a;安装cv2组件步骤5#xff1a;安装ffmpeg组件步骤6… Raspberry Pi3B之Rpanion-gst和ffmpeg验证 1. 源由2. 分析3. 环境搭建步骤1安装镜像步骤2系统更新步骤3安装numpy组件步骤4安装python3-picamera2组件步骤4安装cv2组件步骤5安装ffmpeg组件步骤6测试验证 4. 测试验证4.1 验证代码4.2 验证结果4.3 问题分析 1. 源由
前端时间用Raspberry Pi3B带上ArduRover跑了一个4GLTE的无人遥控车。
本次打算拆下来在摄像头端做一个C/C的图像和IMU的数据采集源工具。
结果立马发现问题图像采集速率上不去(~6.5FPS)。以前ArduRover和ArduCopter上没有遇到过问题帧速率30FPS是没问题的当时还是设置的720P。
ArduRover 4.5.2 Rpanion 4G LTE 邻里漫步ArduRover 4.5.2 with CatArdupilot 4.5.1 Rpanion 4GLTE(Domestic Routing) 720P First FlyArduCopter 4.5.1 Rpanion 4G LTE Outside
鉴于后续验证需要FPS至少15Hz而当前情况无法满足决定从干净的OS镜像来验证下。
2. 分析
其实目前使用下来Rpanion是非常容易上手使用的一个伴机软件主要提供了摄像头视频转发/电传报文转发。
开源主要的问题就是由于受众有限常出现版本管理和测试不足的问题。本次会尽量做一个对比实验期望能找出一些问题线索。
因为怀疑是软件设置或者依赖库出现问题所以采用一份简单的ffmpeg验证代码来做测试rtp_stream.py
import socket
import subprocess
import numpy as np
import picamera2
import time
import cv2 # Import OpenCV module# Set up RTP streaming
rtp_host 192.168.1.19
rtp_port 5400
sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# Use ffmpeg to encode video with specified profile and level
ffmpeg_command [ffmpeg,-f, rawvideo,-pix_fmt, yuv420p, # Change to YUV 4:2:0 pixel format-s, 640x480, # Frame size-r, 30, # Frame rate-i, -, # Input from stdin-c:v, libx264, # Use H.264 codec-profile:v, baseline, # Set profile to baseline-level, 5.0, # Set level to 5-f, rtp, # Output formatfrtp://{rtp_host}:{rtp_port}
]process subprocess.Popen(ffmpeg_command, stdinsubprocess.PIPE)camera picamera2.Picamera2()
camera.configure(camera.create_video_configuration(main{size: (640, 480)}))
camera.start()try:while True:frame camera.capture_array()# Convert frame to YUV 4:2:0frame_yuv cv2.cvtColor(frame, cv2.COLOR_BGR2YUV_I420)process.stdin.write(frame_yuv.tobytes()) # Send the frame to ffmpegtime.sleep(0.033) # Sleep for ~30 FPS
except KeyboardInterrupt:pass
finally:camera.stop()process.terminate()sock.close()3. 环境搭建
本次环境搭建会基于最新的bookworm系统。
Raspberry Pi OS LiteRelease date: July 4th 2024System: 32-bitKernel version: 6.6Debian version: 12 (bookworm)Size: 500MB步骤1安装镜像
略详见以下文档。
Raspberry Pi3B之安装bookwormRpanion系统Raspbian镜像无头烧录
步骤2系统更新
update时收到一个warning的消息这里可以直接忽略。
$ sudo apt-get update
Get:1 http://archive.raspberrypi.com/debian bookworm InRelease [39.0 kB]
Get:2 http://raspbian.raspberrypi.com/raspbian bookworm InRelease [15.0 kB]
Get:3 http://archive.raspberrypi.com/debian bookworm/main arm64 Packages [478 kB]
Get:4 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf Packages [14.5 MB]
Get:5 http://archive.raspberrypi.com/debian bookworm/main armhf Packages [507 kB]
Fetched 15.5 MB in 18s (876 kB/s)
Reading package lists... Done
W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.$ sudo apt-get upgrade注若出现upgrade获取软件包问题时请使用代理服务export https_proxyhttp://192.168.1.10:808以上是笔者的代理服务器请根据自己的情况替换。
步骤3安装numpy组件
若不安装该组件测试代码会报错无法执行。
$ python3 rtp_stream.py
Traceback (most recent call last):File /home/daniel/rtp_stream.py, line 3, in moduleimport numpy as np
ModuleNotFoundError: No module named numpy组件安装并确认安装版本
$ sudo apt install python3-numpy
$ python3 -c import numpy; print(numpy.__version__)
1.24.2步骤4安装python3-picamera2组件
若不安装该组件测试代码会报错无法执行。
$ python3 rtp_stream.py
Traceback (most recent call last):File /home/daniel/rtp_stream.py, line 4, in moduleimport picamera2
ModuleNotFoundError: No module named picamera2组件安装并确认安装版本
$ sudo apt install -y python3-picamera2
$ nano picamera2_version.py
$ cat picamera2_version.py
from picamera2 import Picamera2camera Picamera2()
print(Picamera2 module is working!)$ python3 picamera2_version.py
[1:03:03.937631448] [25996] INFO Camera camera_manager.cpp:316 libcamera v0.3.150-69a894c4
[1:03:04.002791133] [25999] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[1:03:04.007792711] [25999] INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c1/ov564736 to Unicam device /dev/media0 and ISP device /dev/media1
[1:03:04.007917192] [25999] INFO RPI pipeline_base.cpp:1125 Using configuration file /usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml
Picamera2 module is working!步骤4安装cv2组件
若不安装该组件测试代码会报错无法执行。
$ python3 rtp_stream.py
Traceback (most recent call last):File /home/daniel/rtp_stream.py, line 6, in moduleimport cv2 # Import OpenCV module^^^^^^^^^^
ModuleNotFoundError: No module named cv2组件安装
$ sudo apt install python3-opencv步骤5安装ffmpeg组件
若不安装该组件测试代码会报错无法执行。
$ python3 rtp_stream.py
Traceback (most recent call last):File /home/daniel/rtp_stream.py, line 28, in moduleprocess subprocess.Popen(ffmpeg_command, stdinsubprocess.PIPE)^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^File /usr/lib/python3.11/subprocess.py, line 1024, in __init__self._execute_child(args, executable, preexec_fn, close_fds,File /usr/lib/python3.11/subprocess.py, line 1901, in _execute_childraise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ffmpeg组件安装并确认安装版本
$ sudo apt install ffmpeg
$ ffmpeg -version
ffmpeg version 5.1.6-0deb12u1rpt1 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 12 (Raspbian 12.2.0-14rpi1)
configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared --libdir/usr/lib/arm-linux-gnueabihf --cpuarm1176jzf-s --archarm
libavutil 57. 28.100 / 57. 28.100
libavcodec 59. 37.100 / 59. 37.100
libavformat 59. 27.100 / 59. 27.100
libavdevice 59. 7.100 / 59. 7.100
libavfilter 8. 44.100 / 8. 44.100
libswscale 6. 7.100 / 6. 7.100
libswresample 4. 7.100 / 4. 7.100
libpostproc 56. 6.100 / 56. 6.100步骤6测试验证
上述安装无误测试代码执行应该不会报错并将RTP报文发送到192.168.1.19:5400。
只要在该位置(笔者环境是一台Jetson Orin Nano)部署RTP播放器即可进行验证。
$ python3 rtp_stream.py
[1:22:47.885388362] [27548] INFO Camera camera_manager.cpp:316 libcamera v0.3.150-69a894c4
[1:22:47.946776908] [27553] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[1:22:47.952128493] [27553] INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c1/ov564736 to Unicam device /dev/media0 and ISP device /dev/media1
[1:22:47.952253910] [27553] INFO RPI pipeline_base.cpp:1125 Using configuration file /usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml
[1:22:47.968421584] [27548] INFO Camera camera.cpp:1191 configuring streams: (0) 640x480-XBGR8888 (1) 640x480-SGBRG10_CSI2P
[1:22:47.969165129] [27553] INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c1/ov564736 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA
ffmpeg version 5.1.6-0deb12u1rpt1 Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 12 (Raspbian 12.2.0-14rpi1)configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared --libdir/usr/lib/arm-linux-gnueabihf --cpuarm1176jzf-s --archarmWARNING: library configuration mismatchavutil configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavcodec configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavformat configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavdevice configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavfilter configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsswscale configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsswresample configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programspostproc configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programslibavutil 57. 28.100 / 57. 28.100libavcodec 59. 37.100 / 59. 37.100libavformat 59. 27.100 / 59. 27.100libavdevice 59. 7.100 / 59. 7.100libavfilter 8. 44.100 / 8. 44.100libswscale 6. 7.100 / 6. 7.100libswresample 4. 7.100 / 4. 7.100libpostproc 56. 6.100 / 56. 6.100
Input #0, rawvideo, from pipe::Duration: N/A, start: 0.000000, bitrate: 110592 kb/sStream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480, 110592 kb/s, 30 tbr, 30 tbn
Stream mapping:Stream #0:0 - #0:0 (rawvideo (native) - h264 (libx264))
[libx264 0xfb58c0] using cpu capabilities: ARMv6 NEON
[libx264 0xfb58c0] profile Constrained Baseline, level 5.0, 4:2:0, 8-bit
Output #0, rtp, to rtp://192.168.1.19:5400:Metadata:encoder : Lavf59.27.100Stream #0:0: Video: h264, yuv420p(progressive), 640x480, q2-31, 30 fps, 90k tbnMetadata:encoder : Lavc59.37.100 libx264Side data:cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
SDP:
v0
o- 0 0 IN IP4 127.0.0.1
sNo Name
cIN IP4 192.168.1.19
t0 0
atool:libavformat LIBAVFORMAT_VERSION
mvideo 5400 RTP/AVP 96
artpmap:96 H264/90000
afmtp:96 packetization-mode1^Cav_interleaved_write_frame(): Immediate exit requested00 bitrateN/A speed 0xLast message repeated 47 timesssage repeated 28 times
Error writing trailer of rtp://192.168.1.19:5400: Immediate exit requested
frame 53 fps8.3 q-1.0 Lsize 20kB time00:00:01.73 bitrate 93.5kbits/s speed0.273x
video:159kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Error closing file rtp://192.168.1.19:5400: Immediate exit requested
[libx264 0xfb58c0] frame I:2 Avg QP:23.33 size: 10914
[libx264 0xfb58c0] frame P:51 Avg QP:24.95 size: 2763
[libx264 0xfb58c0] mb I I16..4: 54.1% 0.0% 45.9%
[libx264 0xfb58c0] mb P I16..4: 7.3% 0.0% 0.2% P16..4: 64.7% 2.0% 1.6% 0.0% 0.0% skip:24.3%
[libx264 0xfb58c0] coded y,uvDC,uvAC intra: 24.4% 89.0% 28.8% inter: 3.2% 63.5% 0.5%
[libx264 0xfb58c0] i16 v,h,dc,p: 57% 21% 10% 12%
[libx264 0xfb58c0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 23% 11% 43% 4% 5% 5% 3% 3% 2%
[libx264 0xfb58c0] i8c dc,h,v,p: 64% 16% 17% 3%
[libx264 0xfb58c0] ref P L0: 46.5% 26.0% 27.5%
[libx264 0xfb58c0] kb/s:736.93
Exiting normally, received signal 15.4. 测试验证 rpanion(gst) vs ffmpeg test on rpi3b 4.1 验证代码
rtp_stream_baseline_30.py // profile baseline, 30FPSrtp_stream_high_30.py // profile high, 30FPSrtp_stream_baseline_60.py // profile baseline, 60FPSrtp_stream_high_60.py // profile high, 60FPS
$ diff -urN rtp_stream_baseline_30.py rtp_stream_high_30.py
--- rtp_stream_baseline_30.py 2024-09-30 01:38:31.000000000 0100rtp_stream_high_30.py 2024-09-30 01:38:15.000000000 0100-19,7 19,7 -r, 30, # Frame rate-i, -, # Input from stdin-c:v, libx264, # Use H.264 codec
- -profile:v, baseline, # Set profile to baseline-profile:v, high, # Set profile to baseline-level, 5.0, # Set level to 5-f, rtp, # Output formatfrtp://{rtp_host}:{rtp_port}-37,7 37,7 # Convert frame to YUV 4:2:0frame_yuv cv2.cvtColor(frame, cv2.COLOR_BGR2YUV_I420)process.stdin.write(frame_yuv.tobytes()) # Send the frame to ffmpeg
- time.sleep(0.033) # Sleep for ~30 FPS baselinetime.sleep(0.033) # Sleep for ~30 FPS highexcept KeyboardInterrupt:passfinally:$ diff -urN rtp_stream_baseline_60.py rtp_stream_high_60.py
--- rtp_stream_baseline_60.py 2024-09-30 01:38:48.000000000 0100rtp_stream_high_60.py 2024-09-30 01:37:58.000000000 0100-19,7 19,7 -r, 60, # Frame rate-i, -, # Input from stdin-c:v, libx264, # Use H.264 codec
- -profile:v, baseline, # Set profile to baseline-profile:v, high, # Set profile to baseline-level, 5.0, # Set level to 5-f, rtp, # Output formatfrtp://{rtp_host}:{rtp_port}-37,7 37,7 # Convert frame to YUV 4:2:0frame_yuv cv2.cvtColor(frame, cv2.COLOR_BGR2YUV_I420)process.stdin.write(frame_yuv.tobytes()) # Send the frame to ffmpeg
- time.sleep(0.0167) # Sleep for ~60 FPS baselinetime.sleep(0.0167) # Sleep for ~60 FPS highexcept KeyboardInterrupt:passfinally:4.2 验证结果
rtp_stream_baseline_30 vs rtp_stream_high_30, profile high的FPS性能更好一点rtp_stream_baseline_60 vs rtp_stream_high_60, 在60FPS设置下两种profile情况并无太大差异rpanion(gst) 软件在设置旋转180度的时候发现FPS帧速率很低只有6.5左右rpanion(gst) 软件同样设置情况仅使用0度默认旋转方向帧速率能够稳定在设置值30FPS
所以这个设置旋转的角度很有可能就是当前看到低FPS的源头。
4.3 问题分析
但是在bulleye系统上曾经使用该设置720P也能很好的运行在30FPS怀疑是上述系统可能有硬件编码器的介入。
当前的bookworm系统好像无法安装和使用硬件编码器这个问题值得深入分析下。
$ python3 rtp_stream_omx.py
[2:22:37.302522766] [2918] INFO Camera camera_manager.cpp:316 libcamera v0.3.150-69a894c4
[2:22:37.359684273] [2922] WARN RPiSdn sdn.cpp:40 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[2:22:37.365105905] [2922] INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c1/ov564736 to Unicam device /dev/media2 and ISP device /dev/media0
[2:22:37.365232987] [2922] INFO RPI pipeline_base.cpp:1125 Using configuration file /usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml
[2:22:37.380838095] [2918] INFO Camera camera.cpp:1191 configuring streams: (0) 640x480-XBGR8888 (1) 640x480-SGBRG10_CSI2P
[2:22:37.381569757] [2922] INFO RPI vc4.cpp:622 Sensor: /base/soc/i2c0mux/i2c1/ov564736 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA
ffmpeg version 5.1.6-0deb12u1rpt1 Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 12 (Raspbian 12.2.0-14rpi1)configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared --libdir/usr/lib/arm-linux-gnueabihf --cpuarm1176jzf-s --archarmWARNING: library configuration mismatchavutil configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavcodec configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavformat configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavdevice configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsavfilter configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsswscale configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programsswresample configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programspostproc configuration: --prefix/usr --extra-version0deb12u1rpt1 --toolchainhardened --incdir/usr/include/arm-linux-gnueabihf --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --libdir/usr/lib/arm-linux-gnueabihf/neon/vfp --cpucortex-a7 --archarmv6t2 --disable-thumb --enable-shared --disable-doc --disable-programslibavutil 57. 28.100 / 57. 28.100libavcodec 59. 37.100 / 59. 37.100libavformat 59. 27.100 / 59. 27.100libavdevice 59. 7.100 / 59. 7.100libavfilter 8. 44.100 / 8. 44.100libswscale 6. 7.100 / 6. 7.100libswresample 4. 7.100 / 4. 7.100libpostproc 56. 6.100 / 56. 6.100
Input #0, rawvideo, from pipe::Duration: N/A, start: 0.000000, bitrate: 110592 kb/sStream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480, 110592 kb/s, 30 tbr, 30 tbn
Stream mapping:Stream #0:0 - #0:0 (rawvideo (native) - h264 (h264_omx))
[h264_omx 0x9d68c0] libOMX_Core.so not found
[h264_omx 0x9d68c0] libOmxCore.so not found
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Traceback (most recent call last):File /home/daniel/rtp_stream_omx.py, line 39, in moduleprocess.stdin.write(frame_yuv.tobytes()) # Send the frame to ffmpeg^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BrokenPipeError: [Errno 32] Broken pipe使用bullseye系统就没有上述问题。因此该主要问题是树莓派镜像对硬件编码支持性的问题。