UPDATE: The latest version of the Raspberry Pi OS removes omxplayer which is a key component of this tutorial! Until I can make an updated video for the latest Raspberry Pi OS, you can still download the previous version here: www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy
As someone who has taught themselves the very small and finite knowledge about broadcasting, this device is bloody awesome. It's the solution to a problem, I didn't know had an answer. Thank you UA-cam algorithm and thanks for sharing this mate. I'll be making one myself now.
Using this approach with a PI3 to feed an rtmp stream from a Mevo camera to an 8x HDMI to feed multiple classrooms. Good tutorial thar made it easy to setup.
Just as a test I did this with a pi zero w, works and is Wireless, definitely a huge amount of lag but if live interaction isn't something youre doing then it works pretty smoothly in my opinion
Thanks Aaron! I know this has been around for awhile now, but finally got to a point where I needed it. Tolerable on a Pi 3b+ even! Using a RTMP Streamer App on the iPhone to make a wireless camera (where a little delay won't matter). Much appreciated!
@aaronparecki anyway you could do a follow-up and show some of us noobs how to make the pi ip addy public so we can stream to it from a remote location? It would be most helpful!
Hee Aaron, I had no time yet to setup your perfect diy solution but I read multiple audio problems here. Maybe people just ask here before they really search themselves but I do think that an extended followup on this absolute great tutorial of yours is gonna be highly appreciated.
This is awesome, with DJI drones you can stream to RTMP, theoretically you could bring in a drone feed via HDMI to the ATEM using this. Has anyone tried?
Figured out how to push to UA-cam and other sites! Just add these types of lines after the "record off;" function and replace with your stream keys: push rtmp://live-vie.twitch.tv/app/my_stream_key; push rtmp://a.rtmp.ua-cam.com/users/live2my_stream_key; You can also add whatever entries as well, just make sure that the normal .xml settings are the same, sending from the ATEM to the RTMP site. Basically making a $500 - $1000 piece of gear for $50. Pretty amazing, thank you so much for this. I've been helping setup streaming in churches and the stream grab/restream option is the best solution to send the "program" out to the rest of the church. Thank you again
Hi Aaron, very cool. Omxplayer is not supported anymore on raspberry pi 'bullseye'. I tried installing older images, but that was a mess. Then I tried replace the omxplayer witch vlc, but can't figure out what the exact command should be. Do you have any idea, how to solve this?
I set up an older rapi as an rtmp setup for a mevo, but would have never considered trying to output to the hdmi... thanks! My test is way underpowered, but it was a fun exercise.
awesome! anybody know if this would also work forwarding a stream from usb to hdmi? or is it just meant to forward streams via network? thanks in advance
Hi there. UA-cam recommended you and for a good reason. That being said; RTMP is slow at minimal 5 second delay. Why doesn’t the system support NDI or WebRTC? Those technologies are way faster than RTMP and even RTSP/RTP.
If by "the system" you mean the ATEM Mini Pro, it's because RTMP is what UA-cam and most other streaming platforms ingest. The Streaming Bridge is a product that takes advantage of the fact that there is already an RTMP encoder in the ATEM. The delay when streaming to UA-cam is only about 3 seconds so I'm not sure where you're getting the minimum 5 second delay. If you wanted to make a dedicated device for point to point streaming you could definitely get better speeds using other protocols, but it means a dedicated (probably expensive) device on both ends whereas this setup is more flexible and affordable.
@@aaronpk sorry for the late reply, didn’t notice yours. So if I understand correctly you ingress RTMP to the ATEM and then egress it to (eg) UA-cam. Correct? In that case you get twice the delay, agreed? Personally I prefer < 1 second delays, at least on the physical LAN side. Which in my experience RTMP cannot comply to. That’s where my question originated from. When streaming I prefer near-real-time so I can properly interact with my viewers. Yes, I do understand that even TV live broadcasting has a delay.
I’ll definitely give you a thumbs up. I’ve been doing this with an upstream rtmp server and receiving via VLC but keep getting drop outs. Gonna give this a try while i wait for a BM streambridge.
This is great I have improved this DIY with web vlc and srt input and hdmi output to a cheap rgblink mini+ also a restreamer option so the only thing missing is maybe something to make graphics overlays but my setup works with usefull srt input and I can add output from android/iphone with lariks screencaster etc. so this is a possible way to make something the raspberry can get via srt. Buy the way new Bullseye Raspian OS does not have omxplayer but clvc or ffplay can be used - also the cvlc have recorder option anyway this works fine with my wifi srt rpi4 with a camlink that transmit srt stream home to the mixer and diy Bridge - srt input done via portforward so its secure. Maybe I will add OBS Ninja input also. Is it possible to replace rmtp and use udp for lowere latency in output from your atem mini ?
I loved this Aaron. I may misunderstand the utility of this could you please share if this is not useful for Zoom-like communication due to the delay? Seems like this is more useful to get a livestream of events where I can narrate the footage? Is that an applicable use case?Thanks Awesome video
Yes I did set it up with a raspberry 3B+ but it could only handle the lowest bitrate setting on the atem. My guess is that on higher bitrates, the raspberry simply cannot keep up.
This is awesome content. Now you only need a web interface to change some settings, like Key and not much. You could also use the second HDMI port with a little change to the omxplayer command, using parameter --display.
@@ClydeGravenberch hi, like I said in my comment, using the same command, you must indicate a parameter with the display number (it seems to be 7 for the secondary display). > omxplayer -p -o hdmi -display=7
worked like a charm for me on a 2Gb RPi4, one that was running CompanionPi at the same time to control my Stream Deck. running the stream did seem to glitch up the Companion part a bit.
Works great Aaron thanks. I was able to connect my DJI pocket 2 with do it all handle to the bridge via iOS memo app rtmp and was seeing a 2-3 second delay.
@@diegodavila9356 Not that I know of. But the Pocket 2 and the Osmo Action both support rtmp streaming directly from the mimo app and they both will stream to this Raspberry Pi bridge.
hello aaron thank you for your precious help. I would like to have the wiring layout diagram. input and output video from the atem to the pi and from the pi to the atem. Thanks
@aaronparecki Thanks so much for this tutorial. I built this with a raspberry pi 3 I had lying around. Worked perfectly. There's about a 3 second delay. (I actually had to test it with my mevo as the AMP I use belongs to my church and I can't get to it till Sunday)
Thank you very much. I did it with Pi 3 model b with legacy os and works perfectly ❤! consuming 17% cpu and 70mb memory. VLC could be an alternative to omxplayer.
Glad you got it working! The main reason I went with omxplayer is it has direct access to the graphics chip and you can use it without installing a desktop environment. All the other solutions like using VLC require that you boot into a GUI first, which causes other stability issues
Aaron, I love your videos & info on Atem Mini Pro, Ordered same for church, excited about getting it up and running, it will be delivered in a week. I am also a recent fan of the Raspberry Pi, I built your Pi Streaming bridge and would like to get it working with OBS. I am new to OBS as well. Could you help me by any information on configuring OBS to communicate to my Raspberry Pi Streaming Bridge. Thanks
Clear and concise instructions, great job!! Got this working on a Raspberry PI 4 (two HDMI ports)with 4gb. one small problem, cannot get audio output to the HDMI TV. Any suggestions? I changed the omxplayer output to local "-o local" to make sure the audio was passing thru the PI, that works.
Hey Aaron thx for your incredible tutorials. I was wondering how to use an iPad as a display of the program of an ATEM mini extreme or pro trough a local network (my extreme being linked to a router). Thx !!
Great video! Just what I was looking for. How about a quick example of adding some access control? ... I've been struggling with how to incorporate the streaming key. Would be greatly appreciated
I'd like to do that but there's a fair amount of programming and configuration involved in order to get that working right. This video did way better than I imagined though so I very well might do that as a followup next!
@@aaronpk Hi Aron, have you considered doing a video on access control? alternatively, could you please share some links to investigate on how to do it to server as a source of direction. Thanks.
Thank you so much for this awesome Tutorial - combining the Pi with ATEM is a masterpiece ... an it works like charme ... wonder how the streaming bridge will perform compared to this great solution :-) thx again!
This awesome. Is there a way to use this same setup with different program settings to use this as a NDI decoder and/or encoder? If so can you do a similar video step by step making that?
Thanks Aaron. I used your link for the Pi on Amazon. They have suggested kits that include all the parts to go with it. It says the sad card has Noobs preinstalled. It that the same OS that you use and install in the Pi?
@@skymotiondrones6753 Thanks! I usually install Raspberry Pi OS (formerly known as Raspbian). It's easy enough to burn onto an SD card with their new installer app too.
This is so cool! You said port forwarding is required to stream to this from the internet? wanna do a video interview with this. I do have an ATEM Mini :) Just ordered a Raspberry Pi 4 8gig
Very helpful!!! I am using it with LiveU, vmix, and jvc hm-250. I installed zerotier client and skip opening ports!!. Is there any way to don't show the codec lines while isn't an incoming video? Maybe colorbars or any picture, or just black screen. Thank you!!
That sounds cool. Will definitely look into this. Why do you think, it won't be good enough for real time conversations to be used in a stream? Do you think the delay will be to much of a problem? Like if I have two people "calling" me and I add them to my conversation via the ATEM Mini Pro and stream from there?
This is awesome! I have an Atem Pro Iso and two Blackmagic cameras. If you need a test subject or someone to help you test, let me know. I'm pretty technical.
@Aaron Parecki If you add "--live" (thats a double "-") to the end of your omxplayer line in nginx config file, ie "exec omxplayer -o hdmi rtmp://127.0.0.1/live/$name --live" it should cut some of the latency down.
@@aaronpk It will work fine on a local network, but it may not cope well with buffering when streaming over the internet with the "--live" option. The Rpi4's are a great piece of kit. I've used the "--live" option a lot on local network video over IP distribution with no issues at all. (have had 17, 720p30 streams pulled concurrently from one Rpi4 running 8hrs a day with no issues at all.)
@@aaronpk I don't know if this will work from within the nginx config, but I know that it can work from command line. Basically we had run into issues that omxplayer would quit if the stream got interrupted (even briefly) and it was a pain to have to manually restart it in multiple locations. So we used a single line looping command that would automatically restart omxplayer (until you "killed" it, LOL!!) the command is copied below with your parameters from the video. Might be worth a try if you find that Nginx doesn't restart omxplayer if the stream is briefly interupted. "exec while true; do omxplayer -o hdmi rtmp://127.0.0.1/live/$name --live ; sleep 1 ; done &"
@@time4021 I got the PI up and running with no issues (except I should have switched the keyboard layout to danish first 😊) Your line "exec while true..." does not work on my machine. Is there a typo somewhere? Thanks ;0)
@@tfechtenburg Sorry it didn't work, like I said, I had been using that line from the command prompt rather than from within Nginx config, I haven't tried it in Nginx as my Nginx Server (running on a Rpi4) is only used as a RTMP media server to distribute one video source to many locations on a LAN. If you need to have OMXplayer to automatically keep retrying to play a stream you can make a simple script that will do this, and then call the script from Nginx config file]
Nice video Aaron. I am currently designing a remote streaming case and debating if I should go with the mini extreme ($1300) or mini pro w/ streaming bridge & hdmi audio extractor ($750). I really wish there was a pro with 2 hdmi out & audio out! I had plans to use a Rpi in my case to be able have access to the ATEM via ethernet and do some other things where I need a computer in a remote environment. If I use the Rpi as the streaming bridge do you think it needs to be 100% dedicated as a streaming bridge?
This video helped me a lot. Buy I still have more question. I figured this raspberry pi can push to multiple streaming platform such as youtube and facebook. For facebook we can use stunnel. But I want to reduce resolution to facebook. If you can help us with that would be great. Thanks for great work.
I was able to set up something like this using nvidia's jetson nano and using gstreamer to stream from a CSI camera using H.265 at near realtime (sub 100ms delay) so it's possible for sure.
Aaron, question for you, have a new install for the Pi 4B and the new distribution of the OS does not support omxplayer. Have you played with anything that can replace the omxplayer. Was looking at VLC, but not sure how to output the stream to the HDMI like you do with omxplayer. Also wondering if you can output to hdmi1 as this PI has two HDMI ports. Thanks for your input. I have Nginx up and running and can stream RTMP to it with my new DJI Action 2 cam, or at least I think I am, the DJI app is not complaining about the RTMP stream to the pi, just can't see the stream anywhere yet. Your thoughts on this are much appreciated, Thanks
Awesome video. Will probably do this. Question : does nginx have an SRT module like rtmp ? Having this could let me stream SRT to OBS which would be cool. I know I could use Nimble studio but would not want to pay for WSPanel. Any thoughts or ideas? Thanks
This is awesome, thank you for making this tutorial @Aaron 🙏🙏 My question: how if I want to stream to youtube from atem mini pro and at the same time stream to the raspberry pi? is that possible? I plan to stream the sunday service to youtube for our online member at the same time using the raspberry pi as a video monitor at the stage. thanks in advance 🙏🙏
Amazing tutorial! I get a electric surge sound every 5 seconds on my audio HDMI feed in the pi? Any ideas where it's from? I coupled it directly and via a UTP hub. But same thing. Anyone ideas?
Thanks for the tipp. I setup the nginx server with rtmp and hls on the same raspberry as playoutbee. when a stream comes in it show the stream on hdmi and when it stops playoutbee is visible again...works pretty good. even if you have no atem mini pro its pretty useful. i used it to stream my smartphone cam, or for dual pc setup...over rtmp latency is around 4 seconds.
@@ClydeGravenberch first i use the image. but there where update problems with chrome. i fixed it by myself and extract de playoutbee app form the update images to update playoutbee. i didn't try the latest playoutbee yet. nginx is installed normally on the raspi
Thanks for the tutorial .... I have a question. With ATEM ISO, I could record to USB at very high resolution. HDMI for Multiview. and via ethernet through a switch have: RPi4 with RMTP; and on a computer via ethernet ATEM CONTROL and OBS or vMix that takes the Stream from RPi and sends to UA-cam or Fb at 1080 or 720p for not too fast connections? could i have problems with audio besides the video lag of 2-4 sec?
The PI3 is likely able to do that, it's not that heavy to decode and playout on HDMI especially if you add the MPEG-4 Licence for the Hardware decoding (Actually maybe PI2) is sufficient for this. The limitation would likely come more from the reduced Ethernet IO capabilities of the PI2/3 could be the most likely bottleneck.
Thank you Aaron for this great DIY video! I've been trying to implement it on my Rpi4(8gb), I followed all the instructions in the video and your website. But I'm unable to generate a valid RTMP code. My Internet doesn't have static IP, I tried Cloudflare for Dynamic DNS but no luck. any suggestions to get it working on an internet connection without Static IP?
Sounds like about what I was seeing. Someone suggested adding "--live" to the omxplayer command, so give that a shot. If you dig into the RTMP module docs you'll find some info on changing the buffer sizes, and you can also change the keyframe size in the ATEM which may help too. Lots of experiments to do, but I doubt you'd be able to get it below half a second at the very best.
@@aaronpk Half a second would awesome! I wonder if anyone tried the "real" ATEM Streaming Bridge to see what latency you get with it. I'm trying to hook up my ATEM Mini Pro to my LiveU LU200 to do multicamera and live interaction, if I get to half a second it is feasible as I can go down to 1.0 secs on the LU200 Feel free to get in touch if you want to do tests with my LiveU
@@aaronpk Thanks for the quick answer That's better but still not perfect. As you say it's pretty good for stuff across continents though Do you connect your ATEM Mini to the Streaming Bridge directly via Ethernet? That's what I did yesterday (after I installed it and did a quick test through the router) and it doesn't seem to change much Will probably do more tests today
Can you make a Raspberry PI device that can capture a RTMP broadcast from a DJI Osmo or DJI Pocket 2 or Drone to send into Blackmagic Atem hdmi? I have PI setup to run companion for stream deck and I love to also be able to load a program on the same PI.
Hey Aaron, great video! Like others said, this is a gem. I got a question, now that the USB-C port on the Atem Mini Pro is free up, does it still record the video? The reason behind this is that some of my clients are using Zoom platform and Zoom only recognises the Atem Mini Pro via USB-C (webcam). So I was thinking if this Raspberry solution meant that I could use the HDMI out from the Raspberry with a capture card to feed into Zoom?
I was looking for a device to play back videofiles for lower thirds, video clips and so on, to be used in my one take videos. I tried with OBS, but it was not running smoothly on my Raspberry PI. After successfully installed omxplayer by following this tutorial, I was hooked for taking a deeper look into this subject. I have now installed github.com/sosedoff/omxremote#readme that makes it possible to playback videofiles from the Raspberry PI, controlled by a webbrowser on your phone or computer. I have made some macros on the ATEM, and combined with Companion, I can now start/stop videoplayback from my Stream Deck. If I need an animated lower third, I just press a button, and it will activate the upstream keyer, and playback the file from my Raspberry ;0) I know it's not a fully functional HyperDeck, but for playing back videofiles, it works like a charm. Hope you will try it out
Great idea Aaron! I have no experience with pi, is it possible to run this as a dedicated headless pi, turn on & immediate feed from source? Sorry for noob questions..
Adrenaline Impact I just turn my Raspberry PI on, and it’s ready to receive a stream 😀 To use the PI to play back video files, as described above, I still need to activate the script first in my setup. It is fairly trivial to make it start up automatically though 😀
Be sure to get the real official power supply as others may now work correctly. Also, get the Model 4 with the maximum amount of RAM, it is worth the money.
I'm not familiar with the OrangePI, but this relies on the existence of the omxplayer software. If that platform includes it then it should work, but it was removed from the most recent Raspberry Pi OS so I'm not sure.
Thanks. You explained what the ATEM Streaming Bridge actually does. I thought it was an interceptor, and just read raw streams, but no, it seems to be a device you can stream to instead, just like you would if you were streaming to youtube. Did I understand it correctly?
I followed your instructions exactly and got it working without any trouble on a rasberry 3. However I have to set the atem to streaming low. On Hyperdeck high it does not work. I wonder if that would be a limit of it being a raspberry 3 ? Maybe it just cannot handle the huge amount of info coming in wide and fast. Does the stream work to a raspberry 4 in hyperdeck high (The highest setting)? I ask because with a mini pro I would like to record(using ssd drive on te usb port) in the highest possible quality while sending 'program' over streaming to the next rooms in the building while keeping my multiview over hdmi. I do funurals very occasionally in which only a small group is allowed at the ceremony (corona rules) and the rest stands outside or in others rooms and watch big screens. It is too occasionally to buy the offical stream bridge yet.
Hello Aaron - I finally received my Blackmagic ATEM Streaming Bridge Today! Only problem is that I'm confused about how to set it up with the ATEM Mini Pro. Will you be doing a video on the ATEM Streaming Bridge soon?
nginx will run omxplayer when the video comes in, so you only need to set up nginx to start on boot. nginx should already be set up to start on boot if you install it the way I did in the video
@@aaronpk Hmm, of course! :) Gotta check the video once again, I missed how you made it to auto-boot :) Or did the installation script do that by itself?
I'm wondering how the video can be fed from a remote location back to OBS, I'm thinking nginx would be installed on the streaming PC whilst a remote pi4 would take the input and send it somehow over 4g?
This is quite complicated for me but I need to ask a question: We are not programmers but not afraid of learning. Can we use this system to create an RTMP stream for other people on the internet? We are preparing to offer video conference service and need to push our feed to other members of the group by giving an RTMP weblink.
You definitely can! If you made it through this tutorial, there's only a little more work to make the stream viewable at a web page. However I'd probably recommend a different path which is to use OwnCast since it's a more out of the box solution for doing exactly that. It's open source and they provide pretty good instructions for getting it running. It'll be better to run it on a cloud server somewhere rather than on a raspberry pi as well.
UPDATE: The latest version of the Raspberry Pi OS removes omxplayer which is a key component of this tutorial! Until I can make an updated video for the latest Raspberry Pi OS, you can still download the previous version here: www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-legacy
oh no
Do I need to delete everything and star over? I don’t see this!!!!
Which version do you recommend to install?
@@MEVOFilmsCuautla yes
@@rotsom Raspberry Pi OS Lite (Legacy)
This is an unexpected gem in the UA-cam recommendations list. Thanks!
I've been looking for a way to stream _to_ a Raspberry Pi for a totally different application.
You have just made my day :)
As someone who has taught themselves the very small and finite knowledge about broadcasting, this device is bloody awesome. It's the solution to a problem, I didn't know had an answer.
Thank you UA-cam algorithm and thanks for sharing this mate. I'll be making one myself now.
Using this approach with a PI3 to feed an rtmp stream from a Mevo camera to an 8x HDMI to feed multiple classrooms. Good tutorial thar made it easy to setup.
Just as a test I did this with a pi zero w, works and is Wireless, definitely a huge amount of lag but if live interaction isn't something youre doing then it works pretty smoothly in my opinion
Now THAT is how to teach / explain things to people. Even a newbie could understand what he was aying. This guy is blessed! THANKS AARON! :)
aw, thanks so much! I appreciate the kind words!
@@aaronpk Just keep doing it Aaron.. we need guys like you that know how to do it and then know how to teach others to do it. :)
Thanks a LOT for this video. You really make it possible for a newbie "to get to this sledge"! :D
Seriously one of the most useful videos I've seen in a while. Great job. You've got my subscription.
Great Video! It would be great if you do a video on how to limit who can stream to the device with the stream key.
Thanks again for doing this video.
Thank you Aaron for the detailed video and helpful content. Keep up the good work! Cheers
Thanks!
Thanks Aaron! I know this has been around for awhile now, but finally got to a point where I needed it. Tolerable on a Pi 3b+ even! Using a RTMP Streamer App on the iPhone to make a wireless camera (where a little delay won't matter). Much appreciated!
@aaronparecki anyway you could do a follow-up and show some of us noobs how to make the pi ip addy public so we can stream to it from a remote location? It would be most helpful!
Hee Aaron, I had no time yet to setup your perfect diy solution but I read multiple audio problems here. Maybe people just ask here before they really search themselves but I do think that an extended followup on this absolute great tutorial of yours is gonna be highly appreciated.
Wow, you made it really easy to follow. This is awesome, even if you don't have an atem mini.
Thank you alot!
I love this kind of DIY setup videos.
Nice method. Keep up the good work Aaron. I watched almost all your videos and i am really impressed.
This is awesome, with DJI drones you can stream to RTMP, theoretically you could bring in a drone feed via HDMI to the ATEM using this. Has anyone tried?
it works
Figured out how to push to UA-cam and other sites!
Just add these types of lines after the "record off;" function and replace with your stream keys:
push rtmp://live-vie.twitch.tv/app/my_stream_key;
push rtmp://a.rtmp.ua-cam.com/users/live2my_stream_key;
You can also add whatever entries as well, just make sure that the normal .xml settings are the same, sending from the ATEM to the RTMP site.
Basically making a $500 - $1000 piece of gear for $50. Pretty amazing, thank you so much for this.
I've been helping setup streaming in churches and the stream grab/restream option is the best solution to send the "program" out to the rest of the church.
Thank you again
Hi Aaron, very cool. Omxplayer is not supported anymore on raspberry pi 'bullseye'. I tried installing older images, but that was a mess. Then I tried replace the omxplayer witch vlc, but can't figure out what the exact command should be. Do you have any idea, how to solve this?
Awesome video - Wonderfully presented
Brilliant! Thank you, Aaron. How very informative and nicely presented! Well done! Very valuable tutorial.
I set up an older rapi as an rtmp setup for a mevo, but would have never considered trying to output to the hdmi... thanks!
My test is way underpowered, but it was a fun exercise.
awesome! anybody know if this would also work forwarding a stream from usb to hdmi? or is it just meant to forward streams via network?
thanks in advance
Hi there. UA-cam recommended you and for a good reason. That being said; RTMP is slow at minimal 5 second delay.
Why doesn’t the system support NDI or WebRTC? Those technologies are way faster than RTMP and even RTSP/RTP.
If by "the system" you mean the ATEM Mini Pro, it's because RTMP is what UA-cam and most other streaming platforms ingest. The Streaming Bridge is a product that takes advantage of the fact that there is already an RTMP encoder in the ATEM.
The delay when streaming to UA-cam is only about 3 seconds so I'm not sure where you're getting the minimum 5 second delay.
If you wanted to make a dedicated device for point to point streaming you could definitely get better speeds using other protocols, but it means a dedicated (probably expensive) device on both ends whereas this setup is more flexible and affordable.
@@aaronpk sorry for the late reply, didn’t notice yours.
So if I understand correctly you ingress RTMP to the ATEM and then egress it to (eg) UA-cam. Correct? In that case you get twice the delay, agreed?
Personally I prefer < 1 second delays, at least on the physical LAN side. Which in my experience RTMP cannot comply to. That’s where my question originated from.
When streaming I prefer near-real-time so I can properly interact with my viewers.
Yes, I do understand that even TV live broadcasting has a delay.
Nicely done and your explanation was very clear, thank you for taking the time to do this video. Liked and Sub
Thank you, Aaron. You have reignited the fire within me to r&d in the raspberry pi world. Hehehe.
got it working stream bridge is on the way friday but wanted to try the pi
thanks man
I’ll definitely give you a thumbs up. I’ve been doing this with an upstream rtmp server and receiving via VLC but keep getting drop outs. Gonna give this a try while i wait for a BM streambridge.
This is great I have improved this DIY with web vlc and srt input and hdmi output to a cheap rgblink mini+ also a restreamer option so the only thing missing is maybe something to make graphics overlays but my setup works with usefull srt input and I can add output from android/iphone with lariks screencaster etc. so this is a possible way to make something the raspberry can get via srt.
Buy the way new Bullseye Raspian OS does not have omxplayer but clvc or ffplay can be used - also the cvlc have recorder option anyway this works fine with my wifi srt rpi4 with a camlink that transmit srt stream home to the mixer and diy Bridge - srt input done via portforward so its secure. Maybe I will add OBS Ninja input also. Is it possible to replace rmtp and use udp for lowere latency in output from your atem mini ?
I loved this Aaron. I may misunderstand the utility of this could you please share if this is not useful for Zoom-like communication due to the delay?
Seems like this is more useful to get a livestream of events where I can narrate the footage? Is that an applicable use case?Thanks
Awesome video
So good! Been trying to figure out a way for my buddy and I to do a remote joint concert and this looks like the answer!
Thanks for this very informative video! I will definitly try this out in the next couple of weeks
Thank you very much.3B+ can work also.
Yes I did set it up with a raspberry 3B+ but it could only handle the lowest bitrate setting on the atem. My guess is that on higher bitrates, the raspberry simply cannot keep up.
I liked the concept, overall great video
This is awesome content. Now you only need a web interface to change some settings, like Key and not much.
You could also use the second HDMI port with a little change to the omxplayer command, using parameter --display.
Hi, what command would that be? Could you please tell me?
@@ClydeGravenberch hi, like I said in my comment, using the same command, you must indicate a parameter with the display number (it seems to be 7 for the secondary display).
> omxplayer -p -o hdmi -display=7
worked like a charm for me on a 2Gb RPi4, one that was running CompanionPi at the same time to control my Stream Deck. running the stream did seem to glitch up the Companion part a bit.
Companion requires a surprising amount of resources! Glad to hear it (mostly) worked though!
Works great Aaron thanks. I was able to connect my DJI pocket 2 with do it all handle to the bridge via iOS memo app rtmp and was seeing a 2-3 second delay.
Adding -live to the omxplayer exec line in the nginx.conf file cut the lag down to about one second. .
there is a way to stream with these on the Osmo pocket 1? without cosmostreamer?
@@diegodavila9356 Not that I know of. But the Pocket 2 and the Osmo Action both support rtmp streaming directly from the mimo app and they both will stream to this Raspberry Pi bridge.
does it also transfer the sound of the dji pocket 2 microphon?
hello aaron
thank you for your precious help. I would like to have the wiring layout diagram. input and output video from the atem to the pi and from the pi to the atem.
Thanks
@aaronparecki Thanks so much for this tutorial. I built this with a raspberry pi 3 I had lying around. Worked perfectly. There's about a 3 second delay. (I actually had to test it with my mevo as the AMP I use belongs to my church and I can't get to it till Sunday)
I'm glad it works on the Pi 3 as well!
Great tutorial, thanks Aaron.
Maybe I’ll get my RPi4 setup and we could try transatlantic?
Great content! I don’t have a need for this, but having the information is helpful. Thank you!
Could Raspberry Pi be used as a streaming encoder?
This is so grate. Can we embed this video to a webpage for live streaming. Using a code. ...
can anyone guide me on how to do this with OBS?
Thank you very much. I did it with Pi 3 model b with legacy os and works perfectly ❤! consuming 17% cpu and 70mb memory.
VLC could be an alternative to omxplayer.
Glad you got it working! The main reason I went with omxplayer is it has direct access to the graphics chip and you can use it without installing a desktop environment. All the other solutions like using VLC require that you boot into a GUI first, which causes other stability issues
Thanks for the video ! It was really interesting !
Absolute Great explanation video. It actually makes it all simple. Thank you very much
Great video and great idea. Is there a way to hide the command line on the HDMI output, when no stream is available (or a custom logo)?
Aaron,
I love your videos & info on Atem Mini Pro, Ordered same for church, excited about getting it up and running, it will be delivered in a week.
I am also a recent fan of the Raspberry Pi, I built your Pi Streaming bridge and would like to get it working with OBS. I am new to OBS as well. Could you help me by any information on configuring OBS to communicate to my Raspberry Pi Streaming Bridge.
Thanks
Clear and concise instructions, great job!! Got this working on a Raspberry PI 4 (two HDMI ports)with 4gb. one small problem, cannot get audio output to the HDMI TV. Any suggestions? I changed the omxplayer output to local "-o local" to make sure the audio was passing thru the PI, that works.
Hi, have you find a solution to get the audio output to the HDMI ?
Hey Aaron thx for your incredible tutorials. I was wondering how to use an iPad as a display of the program of an ATEM mini extreme or pro trough a local network (my extreme being linked to a router). Thx !!
Great work, I can not wait for product too
Great video! Just what I was looking for. How about a quick example of adding some access control? ... I've been struggling with how to incorporate the streaming key. Would be greatly appreciated
I'd like to do that but there's a fair amount of programming and configuration involved in order to get that working right. This video did way better than I imagined though so I very well might do that as a followup next!
@@aaronpk Hi Aron, have you considered doing a video on access control? alternatively, could you please share some links to investigate on how to do it to server as a source of direction. Thanks.
Thank you so much for this awesome Tutorial - combining the Pi with ATEM is a masterpiece ... an it works like charme ... wonder how the streaming bridge will perform compared to this great solution :-) thx again!
This was super nerdy and super interesting 🤓
This awesome. Is there a way to use this same setup with different program settings to use this as a NDI decoder and/or encoder? If so can you do a similar video step by step making that?
Check out dicaffeine for the raspberry pi!
Thanks Aaron. I used your link for the Pi on Amazon. They have suggested kits that include all the parts to go with it. It says the sad card has Noobs preinstalled. It that the same OS that you use and install in the Pi?
@@skymotiondrones6753 Thanks! I usually install Raspberry Pi OS (formerly known as Raspbian). It's easy enough to burn onto an SD card with their new installer app too.
Dear Aaron. Are you think to compile another bridge with SRT support?
That will be great job )))
This is so cool! You said port forwarding is required to stream to this from the internet? wanna do a video interview with this. I do have an ATEM Mini :) Just ordered a Raspberry Pi 4 8gig
As engaging as ever!
Very helpful!!! I am using it with LiveU, vmix, and jvc hm-250. I installed zerotier client and skip opening ports!!. Is there any way to don't show the codec lines while isn't an incoming video? Maybe colorbars or any picture, or just black screen. Thank you!!
That sounds cool. Will definitely look into this. Why do you think, it won't be good enough for real time conversations to be used in a stream? Do you think the delay will be to much of a problem? Like if I have two people "calling" me and I add them to my conversation via the ATEM Mini Pro and stream from there?
This is awesome! I have an Atem Pro Iso and two Blackmagic cameras. If you need a test subject or someone to help you test, let me know. I'm pretty technical.
hank you Aaron for the detailed video and helpful content. Thanks for the tipp
Good work, keep it up
Do you know a way to convert an NDI signal into an HDMI signal with a Raspi and vice versa to convert an HDMI signal into an NDI?
Awesome one. Thanks.
@Aaron Parecki If you add "--live" (thats a double "-") to the end of your omxplayer line in nginx config file, ie "exec omxplayer -o hdmi rtmp://127.0.0.1/live/$name --live" it should cut some of the latency down.
Nice, didn't even notice that one in the docs!
@@aaronpk It will work fine on a local network, but it may not cope well with buffering when streaming over the internet with the "--live" option.
The Rpi4's are a great piece of kit. I've used the "--live" option a lot on local network video over IP distribution with no issues at all. (have had 17, 720p30 streams pulled concurrently from one Rpi4 running 8hrs a day with no issues at all.)
@@aaronpk I don't know if this will work from within the nginx config, but I know that it can work from command line. Basically we had run into issues that omxplayer would quit if the stream got interrupted (even briefly) and it was a pain to have to manually restart it in multiple locations. So we used a single line looping command that would automatically restart omxplayer (until you "killed" it, LOL!!) the command is copied below with your parameters from the video. Might be worth a try if you find that Nginx doesn't restart omxplayer if the stream is briefly interupted.
"exec while true; do omxplayer -o hdmi rtmp://127.0.0.1/live/$name --live ; sleep 1 ; done &"
@@time4021 I got the PI up and running with no issues (except I should have switched the keyboard layout to danish first 😊)
Your line "exec while true..." does not work on my machine. Is there a typo somewhere?
Thanks ;0)
@@tfechtenburg Sorry it didn't work, like I said, I had been using that line from the command prompt rather than from within Nginx config, I haven't tried it in Nginx as my Nginx Server (running on a Rpi4) is only used as a RTMP media server to distribute one video source to many locations on a LAN. If you need to have OMXplayer to automatically keep retrying to play a stream you can make a simple script that will do this, and then call the script from Nginx config file]
Nice video Aaron. I am currently designing a remote streaming case and debating if I should go with the mini extreme ($1300) or mini pro w/ streaming bridge & hdmi audio extractor ($750). I really wish there was a pro with 2 hdmi out & audio out! I had plans to use a Rpi in my case to be able have access to the ATEM via ethernet and do some other things where I need a computer in a remote environment. If I use the Rpi as the streaming bridge do you think it needs to be 100% dedicated as a streaming bridge?
Cool I love it really so much you are so amazing
This video helped me a lot. Buy I still have more question. I figured this raspberry pi can push to multiple streaming platform such as youtube and facebook. For facebook we can use stunnel. But I want to reduce resolution to facebook. If you can help us with that would be great. Thanks for great work.
I was able to set up something like this using nvidia's jetson nano and using gstreamer to stream from a CSI camera using H.265 at near realtime (sub 100ms delay) so it's possible for sure.
Aaron, question for you, have a new install for the Pi 4B and the new distribution of the OS does not support omxplayer. Have you played with anything that can replace the omxplayer. Was looking at VLC, but not sure how to output the stream to the HDMI like you do with omxplayer. Also wondering if you can output to hdmi1 as this PI has two HDMI ports. Thanks for your input. I have Nginx up and running and can stream RTMP to it with my new DJI Action 2 cam, or at least I think I am, the DJI app is not complaining about the RTMP stream to the pi, just can't see the stream anywhere yet. Your thoughts on this are much appreciated, Thanks
Awesome video. Will probably do this. Question : does nginx have an SRT module like rtmp ? Having this could let me stream SRT to OBS which would be cool. I know I could use Nimble studio but would not want to pay for WSPanel. Any thoughts or ideas? Thanks
This is awesome, thank you for making this tutorial @Aaron 🙏🙏 My question: how if I want to stream to youtube from atem mini pro and at the same time stream to the raspberry pi? is that possible? I plan to stream the sunday service to youtube for our online member at the same time using the raspberry pi as a video monitor at the stage. thanks in advance 🙏🙏
Amazing tutorial! I get a electric surge sound every 5 seconds on my audio HDMI feed in the pi? Any ideas where it's from? I coupled it directly and via a UTP hub. But same thing. Anyone ideas?
Thanks for the tipp. I setup the nginx server with rtmp and hls on the same raspberry as playoutbee. when a stream comes in it show the stream on hdmi and when it stops playoutbee is visible again...works pretty good. even if you have no atem mini pro its pretty useful. i used it to stream my smartphone cam, or for dual pc setup...over rtmp latency is around 4 seconds.
Did you use the image from the PlayoutBee and then install the NGINX server?
@@ClydeGravenberch first i use the image. but there where update problems with chrome. i fixed it by myself and extract de playoutbee app form the update images to update playoutbee. i didn't try the latest playoutbee yet. nginx is installed normally on the raspi
@@ratbo99 I'm trying to output omxplayer on the second HDMI and want PlayoutBee on first. Have you tried it also?
@@ClydeGravenberch yes i changed my nginx config, when i got my second monitor. this works as well
@@ratbo99 Van you please help me with that. Can't get it to work
Thanks for the tutorial ....
I have a question.
With ATEM ISO, I could record to USB at very high resolution. HDMI for Multiview. and via ethernet through a switch have:
RPi4 with RMTP; and on a computer via ethernet ATEM CONTROL and OBS or vMix that takes the Stream from RPi and sends to UA-cam or Fb at 1080 or 720p for not too fast connections?
could i have problems with audio besides the video lag of 2-4 sec?
The PI3 is likely able to do that, it's not that heavy to decode and playout on HDMI especially if you add the MPEG-4 Licence for the Hardware decoding (Actually maybe PI2) is sufficient for this.
The limitation would likely come more from the reduced Ethernet IO capabilities of the PI2/3 could be the most likely bottleneck.
I did try this on the Pi3 as well, and it worked, but the delay was a lot worse.
Thank you Aaron for this great DIY video!
I've been trying to implement it on my Rpi4(8gb), I followed all the instructions in the video and your website. But I'm unable to generate a valid RTMP code. My Internet doesn't have static IP, I tried Cloudflare for Dynamic DNS but no luck. any suggestions to get it working on an internet connection without Static IP?
Can i use orange pi as a streaming bridge? and what player to use instead of omxplayer?
I love the idea but the frame delay variability would be difficult for us to cut into our production.
Yeah this (and the Streaming Bridge itself) are only going to work for specific kinds of workflows where the delay is acceptable.
great tutorial - worked right out of the box! thank you. In my case latency is about 4000ms - is this normal and is there a way to reduce this?
Sounds like about what I was seeing. Someone suggested adding "--live" to the omxplayer command, so give that a shot. If you dig into the RTMP module docs you'll find some info on changing the buffer sizes, and you can also change the keyframe size in the ATEM which may help too. Lots of experiments to do, but I doubt you'd be able to get it below half a second at the very best.
@@aaronpk Half a second would awesome! I wonder if anyone tried the "real" ATEM Streaming Bridge to see what latency you get with it. I'm trying to hook up my ATEM Mini Pro to my LiveU LU200 to do multicamera and live interaction, if I get to half a second it is feasible as I can go down to 1.0 secs on the LU200
Feel free to get in touch if you want to do tests with my LiveU
@@criminalshooting I tried the real streaming bridge today with someone remote and it was about 1 second! Not bad for going across continents!
@@aaronpk Thanks for the quick answer
That's better but still not perfect.
As you say it's pretty good for stuff across continents though
Do you connect your ATEM Mini to the Streaming Bridge directly via Ethernet? That's what I did yesterday (after I installed it and did a quick test through the router) and it doesn't seem to change much
Will probably do more tests today
Love this
Can you make a Raspberry PI device that can capture a RTMP broadcast from a DJI Osmo or DJI Pocket 2 or Drone to send into Blackmagic Atem hdmi? I have PI setup to run companion for stream deck and I love to also be able to load a program on the same PI.
Hey Aaron, great video! Like others said, this is a gem. I got a question, now that the USB-C port on the Atem Mini Pro is free up, does it still record the video? The reason behind this is that some of my clients are using Zoom platform and Zoom only recognises the Atem Mini Pro via USB-C (webcam). So I was thinking if this Raspberry solution meant that I could use the HDMI out from the Raspberry with a capture card to feed into Zoom?
Can Raspberry be a HyperDeck also? That would be Aaron!
I was looking for a device to play back videofiles for lower thirds, video clips and so on, to be used in my one take videos.
I tried with OBS, but it was not running smoothly on my Raspberry PI.
After successfully installed omxplayer by following this tutorial, I was hooked for taking a deeper look into this subject.
I have now installed github.com/sosedoff/omxremote#readme that makes it possible to playback videofiles from the Raspberry PI, controlled by a webbrowser on your phone or computer.
I have made some macros on the ATEM, and combined with Companion, I can now start/stop videoplayback from my Stream Deck.
If I need an animated lower third, I just press a button, and it will activate the upstream keyer, and playback the file from my Raspberry ;0)
I know it's not a fully functional HyperDeck, but for playing back videofiles, it works like a charm.
Hope you will try it out
@@tfechtenburg wonderful, I will take a look
Great idea Aaron! I have no experience with pi, is it possible to run this as a dedicated headless pi, turn on & immediate feed from source? Sorry for noob questions..
Adrenaline Impact I just turn my Raspberry PI on, and it’s ready to receive a stream 😀
To use the PI to play back video files, as described above, I still need to activate the script first in my setup.
It is fairly trivial to make it start up automatically though 😀
Good work
That was excellent! I'm getting a Pi and see what damage I can do. 😄
Be sure to get the real official power supply as others may now work correctly.
Also, get the Model 4 with the maximum amount of RAM, it is worth the money.
How cool is that!
Cool ! Can this example be completely repeated jn OrangePI One+ ?
I'm not familiar with the OrangePI, but this relies on the existence of the omxplayer software. If that platform includes it then it should work, but it was removed from the most recent Raspberry Pi OS so I'm not sure.
Hi, Aaron OMX Player gone in Bullseye. Maybe we can use VLC?
Thanks. You explained what the ATEM Streaming Bridge actually does. I thought it was an interceptor, and just read raw streams, but no, it seems to be a device you can stream to instead, just like you would if you were streaming to youtube. Did I understand it correctly?
Yep it's a streaming destination that happens to then output the received video over HDMI and SDI
I followed your instructions exactly and got it working without any trouble on a rasberry 3. However I have to set the atem to streaming low. On Hyperdeck high it does not work. I wonder if that would be a limit of it being a raspberry 3 ? Maybe it just cannot handle the huge amount of info coming in wide and fast. Does the stream work to a raspberry 4 in hyperdeck high (The highest setting)? I ask because with a mini pro I would like to record(using ssd drive on te usb port) in the highest possible quality while sending 'program' over streaming to the next rooms in the building while keeping my multiview over hdmi. I do funurals very occasionally in which only a small group is allowed at the ceremony (corona rules) and the rest stands outside or in others rooms and watch big screens. It is too occasionally to buy the offical stream bridge yet.
Hello Aaron - I finally received my Blackmagic ATEM Streaming Bridge Today! Only problem is that I'm confused about how to set it up with the ATEM Mini Pro. Will you be doing a video on the ATEM Streaming Bridge soon?
Awesome! I get mine very soon and I will absolutely be doing a video on it!
Great video!What would be the best preferred option for getting NGINX and and OmxPlayer to auto start at every boot? 😊
nginx will run omxplayer when the video comes in, so you only need to set up nginx to start on boot. nginx should already be set up to start on boot if you install it the way I did in the video
@@aaronpk Hmm, of course! :) Gotta check the video once again, I missed how you made it to auto-boot :) Or did the installation script do that by itself?
This is engaging work :-)
I'm wondering how the video can be fed from a remote location back to OBS, I'm thinking nginx would be installed on the streaming PC whilst a remote pi4 would take the input and send it somehow over 4g?
Very very good please can i make this for udp
This is quite complicated for me but I need to ask a question: We are not programmers but not afraid of learning. Can we use this system to create an RTMP stream for other people on the internet? We are preparing to offer video conference service and need to push our feed to other members of the group by giving an RTMP weblink.
You definitely can! If you made it through this tutorial, there's only a little more work to make the stream viewable at a web page. However I'd probably recommend a different path which is to use OwnCast since it's a more out of the box solution for doing exactly that. It's open source and they provide pretty good instructions for getting it running. It'll be better to run it on a cloud server somewhere rather than on a raspberry pi as well.