bluenviron / mediamtx

Ready-to-use SRT / WebRTC / RTSP / RTMP / LL-HLS media server and media proxy that allows to read, publish, proxy, record and playback video and audio streams.
MIT License
11.41k stars 1.45k forks source link

libcamera crashes mediamtx #2221

Closed gofaster closed 1 year ago

gofaster commented 1 year ago

Which version are you using?

v1.0.0

Which operating system are you using?

Raspbian 11 bullseye

Describe the issue

Description

Updated to libcamera0/stable,now 0~git20230720+bde9b04f-1 armhf => libcamera v0.0.5+83-bde9b04f mediamtx fails to run. 0.23.8 also fail to start. Not sure if this is a mediamtx or libcamera issue.

Describe how to replicate the issue

# uname -a
Linux rpi3b-1 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l GNU/Linux
# apt update
# apt upgrade

Did you attach the server logs?

yes

2023/08/19 11:59:32 INF MediaMTX v1.0.0
2023/08/19 11:59:32 INF [path cam] [RPI Camera source] started
2023/08/19 11:59:32 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2023/08/19 11:59:32 INF [RTSPS] listener opened on :8322 (TCP)
2023/08/19 11:59:32 INF [RTMP] listener opened on :1935
2023/08/19 11:59:32 INF [RTMPS] listener opened on :1936
2023/08/19 11:59:32 INF [HLS] listener opened on :8888
2023/08/19 11:59:32 INF [WebRTC] listener opened on :8889 (HTTP)
2023/08/19 11:59:32 INF [SRT] listener opened on :8890 (UDP)
[0:40:30.351454455] [1994]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:40:30.385518308] [1997]  WARN RPiController controller.cpp:63 This format of the tuning file will be deprecated soon! Please use the convert_tuning.py utility to update to version 2.0.
[0:40:30.386172679] [1997] FATAL default controller.cpp:179 assertion "cfg != HardwareConfigMap.end()" failed in getHardwareConfig()
Backtrace:
RPiController::Controller::getHardwareConfig() const+0x184 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000752c19d0])
RPiController::Agc::read(libcamera::YamlObject const&)+0xc0 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000752ce560])
RPiController::Controller::createAlgorithm(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libcamera::YamlObject const&)+0x10c (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000752c1b1c])
RPiController::Controller::read(char const*)+0x590 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000752c21e0])
libcamera::ipa::RPi::IpaBase::init(libcamera::IPASettings const&, libcamera::ipa::RPi::InitParams const&, libcamera::ipa::RPi::InitResult*)+0xd4 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000752baf04])
libcamera::ipa::RPi::IPAProxyRPi::initThread(libcamera::IPASettings const&, libcamera::ipa::RPi::InitParams const&, libcamera::ipa::RPi::InitResult*)+0x60 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d845d8])
libcamera::RPi::CameraData::loadIPA(libcamera::ipa::RPi::InitResult*)+0x454 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076e0962c])
libcamera::RPi::PipelineHandlerBase::registerCamera(std::unique_ptr<libcamera::RPi::CameraData, std::default_delete<libcamera::RPi::CameraData> >&, libcamera::MediaDevice*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libcamera::MediaDevice*, libcamera::MediaEntity*)+0x310 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076e0e0f8])
libcamera::PipelineHandlerVc4::match(libcamera::DeviceEnumerator*)+0x204 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076e1876c])
libcamera::CameraManager::Private::createPipelineHandlers()+0x11c (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d9e408])
libcamera::CameraManager::Private::init()+0xa4 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d9e730])
libcamera::CameraManager::Private::run()+0x7c (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d9e848])
??? [0x0000000076c0b150] (/usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.28 [0x0000000076c0b150])
start_thread+0xd0 (./nptl/pthread_create.c:478)
2023/08/19 11:59:32 INF [path cam] [RPI Camera source] ERR: process exited unexpectedly
[0:40:35.479629708] [1999]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:40:35.538899968] [2000]  WARN RPiController controller.cpp:63 This format of the tuning file will be deprecated soon! Please use the convert_tuning.py utility to update to version 2.0.
[0:40:35.539572516] [2000] FATAL default controller.cpp:179 assertion "cfg != HardwareConfigMap.end()" failed in getHardwareConfig()
Backtrace:
RPiController::Controller::getHardwareConfig() const+0x184 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000753859d0])
RPiController::Agc::read(libcamera::YamlObject const&)+0xc0 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x0000000075392560])
RPiController::Controller::createAlgorithm(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libcamera::YamlObject const&)+0x10c (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x0000000075385b1c])
RPiController::Controller::read(char const*)+0x590 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x00000000753861e0])
libcamera::ipa::RPi::IpaBase::init(libcamera::IPASettings const&, libcamera::ipa::RPi::InitParams const&, libcamera::ipa::RPi::InitResult*)+0xd4 (/usr/lib/arm-linux-gnueabihf/libcamera/ipa_rpi_vc4.so [0x000000007537ef04])
libcamera::ipa::RPi::IPAProxyRPi::initThread(libcamera::IPASettings const&, libcamera::ipa::RPi::InitParams const&, libcamera::ipa::RPi::InitResult*)+0x60 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d385d8])
libcamera::RPi::CameraData::loadIPA(libcamera::ipa::RPi::InitResult*)+0x454 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076dbd62c])
libcamera::RPi::PipelineHandlerBase::registerCamera(std::unique_ptr<libcamera::RPi::CameraData, std::default_delete<libcamera::RPi::CameraData> >&, libcamera::MediaDevice*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libcamera::MediaDevice*, libcamera::MediaEntity*)+0x310 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076dc20f8])
libcamera::PipelineHandlerVc4::match(libcamera::DeviceEnumerator*)+0x204 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076dcc76c])
libcamera::CameraManager::Private::createPipelineHandlers()+0x11c (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d52408])
libcamera::CameraManager::Private::init()+0xa4 (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d52730])
libcamera::CameraManager::Private::run()+0x7c (/usr/lib/arm-linux-gnueabihf/libcamera.so.0.0.5 [0x0000000076d52848])
??? [0x0000000076bbf150] (/usr/lib/arm-linux-gnueabihf/libstdc++.so.6.0.28 [0x0000000076bbf150])
start_thread+0xd0 (./nptl/pthread_create.c:478)
2023/08/19 11:59:37 INF [path cam] [RPI Camera source] ERR: process exited unexpectedly
^C2023/08/19 11:59:38 INF shutting down gracefully
2023/08/19 11:59:38 INF [SRT] listener is closing
2023/08/19 11:59:38 INF [WebRTC] listener is closing
2023/08/19 11:59:38 INF [HLS] listener is closing
2023/08/19 11:59:38 INF [RTMPS] listener is closing
2023/08/19 11:59:38 INF [RTMP] listener is closing
2023/08/19 11:59:38 INF [RTSPS] listener is closing
2023/08/19 11:59:38 INF [RTSP] listener is closing
2023/08/19 11:59:38 INF [path cam] [RPI Camera source] stopped
2023/08/19 11:59:38 INF waiting for external commands

Did you attach a network dump?

no

gofaster commented 1 year ago

This seems related to the presence of a tuning file that worked with prior versions of libcamera. Without specifying the tuning file, mediamtx starts. So, not a mediamtx issue.

gofaster commented 1 year ago

This format of the tuning file will be deprecated soon! in the log was not exactly true. Newest libcamera choked on it. Converted with `convert_tuning.py' and mediamtx/rpicamera working as expected.

aler9 commented 1 year ago

@gofaster i took into consideration the idea of embedding libcamera into the server in order to avoid these never ending compatibility issues caused by sudden and backward-incompatible updates.

The problem is that libcamera is currently not embeddable, since it depends on tuning files placed somewhere in /usr. Anyway, I'll do another try in the future.

github-actions[bot] commented 6 months ago

This issue is being locked automatically because it has been closed for more than 6 months. Please open a new issue in case you encounter a similar problem.