Can I create mulitple decoder instances?
Hi, my app need to decode multiple video streams simultaneously, so does rpi4 support the creation of multiple video decoders?
- 6by9
- Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator - Posts: 18476
- Joined: Wed Dec 04, 2013 11:27 am
Re: Can I create mulitple decoder instances?
Yes, you can. Running multiple instances of omxplayer with different rendering co-ords will do that for you, but it'll be equally happy whether it's one program or multiple.
Just remember that the hardware spec is nominally 1080p30 for all your streams combined, although it can handle 1080p60 (489600 macroblocks/s).
OpenMAX is considered deprecated as an API. Please look at MMAL or the V4L2 stateful decoder API.
Just remember that the hardware spec is nominally 1080p30 for all your streams combined, although it can handle 1080p60 (489600 macroblocks/s).
OpenMAX is considered deprecated as an API. Please look at MMAL or the V4L2 stateful decoder API.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
- 6by9
- Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator - Posts: 18476
- Joined: Wed Dec 04, 2013 11:27 am
Re: Can I create mulitple decoder instances?
MMAL docs are in the headers as Doxygen markup. Someone is hosting a rendering of it at http://www.jvcref.com/files/PI/documentation/html/ Examples in https://github.com/raspberrypi/userland ... t/examples (ignore example_graph - I've never understood it!)
V4L2 spec is at https://www.kernel.org/doc/html/latest/ ... coder.html. FFmpeg and GStreamer have implementations that use it. Note that V4L2 does specify that you are meant to feed in one NAL per buffer, which requires bitstream parsing. It is likely to work without, but is less optimal.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
Re: Can I create mulitple decoder instances?
6by9 wrote: ↑Tue May 25, 2021 7:53 amMMAL docs are in the headers as Doxygen markup. Someone is hosting a rendering of it at http://www.jvcref.com/files/PI/documentation/html/ Examples in https://github.com/raspberrypi/userland ... t/examples (ignore example_graph - I've never understood it!)
V4L2 spec is at https://www.kernel.org/doc/html/latest/ ... coder.html. FFmpeg and GStreamer have implementations that use it. Note that V4L2 does specify that you are meant to feed in one NAL per buffer, which requires bitstream parsing. It is likely to work without, but is less optimal.
Thanks, I decide to use V4L2 through FFmpeg or GStreamer API,so which one support better do you think? For developping a net stream player app,which one should I use?
- 6by9
- Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator - Posts: 18476
- Joined: Wed Dec 04, 2013 11:27 am
Re: Can I create mulitple decoder instances?
Personally I prefer GStreamer, but it's largely down to personal preference. They can both largely do the same things, although FFmpeg typically doesn't have a way to render to the screen (vout filters are a bit of a funny one). Then again I haven't looked the full set of options on GST's kmssink for setting the display region.
Software Engineer at Raspberry Pi Ltd. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
I'm not interested in doing contracts for bespoke functionality - please don't ask.
Re: Can I create mulitple decoder instances?
Hi, 6by9:
Which version of gstreamer support all hardware codecs(include encoder) on rpi4? Does v1.14.4 from repo meat the requirements?
Which version of gstreamer support all hardware codecs(include encoder) on rpi4? Does v1.14.4 from repo meat the requirements?
Jump to
- Community
- General discussion
- Announcements
- Other languages
- Deutsch
- Español
- Français
- Italiano
- Nederlands
- 日本語
- Polski
- Português
- Русский
- Türkçe
- User groups and events
- Raspberry Pi Official Magazine
- Using the Raspberry Pi
- Beginners
- Troubleshooting
- Advanced users
- Assistive technology and accessibility
- Education
- Picademy
- Teaching and learning resources
- Staffroom, classroom and projects
- Astro Pi
- Mathematica
- High Altitude Balloon
- Weather station
- Programming
- C/C++
- Java
- Python
- Scratch
- Other programming languages
- Windows 10 for IoT
- Wolfram Language
- Bare metal, Assembly language
- Graphics programming
- OpenGLES
- OpenVG
- OpenMAX
- General programming discussion
- Projects
- Networking and servers
- Automation, sensing and robotics
- Graphics, sound and multimedia
- Other projects
- Media centres
- Gaming
- AIY Projects
- Hardware and peripherals
- Camera board
- Compute Module
- Official Display
- HATs and other add-ons
- Device Tree
- Interfacing (DSI, CSI, I2C, etc.)
- Keyboard computers (400, 500, 500+)
- Raspberry Pi Pico
- General
- SDK
- MicroPython
- Other RP2040 boards
- Zephyr
- Rust
- AI Accelerator
- AI Camera - IMX500
- Hailo
- Software
- Raspberry Pi OS
- Raspberry Pi Connect
- Raspberry Pi Desktop for PC and Mac
- Beta testing
- Other
- Android
- Debian
- FreeBSD
- Gentoo
- Linux Kernel
- NetBSD
- openSUSE
- Plan 9
- Puppy
- Arch
- Pidora / Fedora
- RISCOS
- Ubuntu
- Ye Olde Pi Shoppe
- For sale
- Wanted
- Off topic
- Off topic discussion