Today I’m going to explain to you how to integrate ZiXi Broadcaster into Ant Media Server in detail. As you know Zixi Broadcaster has many strong features. Here are some features:
- Robust content delivery over IP – communicates with Zixi Feeder and
ZiXi Receiver over UDP-based, video-optimized protocols on private and
public IP networks for maximal quality at a predictable latency - Adaptive Bit Rate – Dynamically adjusts stream rate to adapt to change
network conditions, using unicast or multicast, to meet specific application
requirements - Transcoding – transcodes to a variety of different profiles and bit rates
- Format conversion – supports Internet protocols: HLS/HDS/MPEGDASH/RTMP/FLV
- Recording – store streams as MPEG-TS files.
- Time-shifting – records the stream to delay its broadcasting
- Secure and rapid file transfer – accelerated and secure file transfers
delivered at wire speed and accelerated HTTP delivery including optimized
playback of HLS and HDS over UDP - VOD – stored files can be accessed on demand in multiple formats
- Clustering and load balancing – supports cluster architectures to provide
continuous uptime - Monitoring – captures network and content specific statistical information in
real-time - Supports many to many and any to any – gateway platform between UDP
(unicast/multicast), ZiXi protected stream (unicast/multicast), RTMP, or
other supported formats
These are just some of them. In this blog post, we will review Zixi Broadcaster to Ant Media Server and Ant Media Server to Zixi Broadcaster use cases.
What is Zixi Broadcaster?
The Zixi Broadcaster is the central component of the ZiXi Video Network. It takes video streams from Zixi Feeder and can process the stream, enabling transcoding, transmuxing, recording, and distribution in multiple-bit rates and protocols to any device anywhere.
1- Send any Zixi Broadcaster Stream to Ant Media Server
We can send any Zixi Broadcaster stream to Ant Media Server through RTMP. In this use case, we will create a UDP input source for the demo.
I will use FFmpeg for the sample UDP source. If you have a UDP source, you don’t need to use FFmpeg. You can skip this part. We will send the stream to UDP Source with example FFmpeg as below:
ffmpeg -re -f lavfi -i "smptehdbars=rate=30:size=1920x1080" \
-f lavfi -i "sine=frequency=1000:sample_rate=48000" \
-vf drawtext="text='YOUR MESSAGE %{localtime\:%X}':rate=30:x=(w-tw)/2:y=(h-lh)/2:fontsize=48:fontcolor=white:box=1:boxcolor=black" \
-f flv -c:v h264 -profile:v baseline -pix_fmt yuv420p -preset ultrafast -tune zerolatency -crf 28 -g 60 -c:a aac \ -f mpegts "udp://localhost:1235/stream1?pkt_size=1316"
Thanks: https://ffmpegfromzerotohero.com/blog/generate-smpte-color-bars/
After that, go Zixi Broadcaster Dashboard -> Input section -> click New Input button. Choose UDP source and add 1235 port to the port section.Now we can send our stream source to Ant Media Server. Please make sure that “stream1” input UDP source status is CONNECTED on the Inputs section.
Just go Zixi Broadcaster Dashboard -> Output section -> click New Output. Choose RTMP source and choose “stream1” input stream.
After that you can watch your stream in your Ant Media Server URL as below:
https://antmediaURL/LiveApp/play.html?id=stream2
2- Send any Ant Media Server Stream to Zixi Broadcaster
It’s an easy-peasy thing if you are familiar with streaming concepts.
Firstly, you need to enable RTMP Server on Zixi Broadcaster. I will also change the RTMP port. Because default RTMP port 1935 is already used by Ant Media Server. Let’s use the 1934 port for Zixi RTMP Server.
You can access RTMP Server on Zixi Broadcaster Dashboard -> Settings -> Live Protocols. You will see the RTMP Server section bottom of the page as an image:
Note: Please don’t forget to restart Zixi Broadcaster after port changing.
Let’s assume that you already have a stream that status is “broadcasting”. Then you just need to send your stream to Zixi RTMP URL with Add RTMP Endpoint option as an image:
Please check this blog post for more detail regarding RTMP Endpoints.
After that just go Zixi Broadcaster Dashboard -> Input section -> click New Input. Choose RTMP source and choose Push type.
Then check that the broadcast is in Connected status. You can now use this broadcast as you wish on Zixi Broadcaster.