HiIt is more liek an issue in constructing audio pipeline to rtmpsink. Please go to -
devel.966125.n4.nabble.com/
Audio pipelines are constructed with native gstreamer plugins. Gstreamer forum users can be more experienced in this usecase. You may ask with software encoder:
The splitting service is a Docker container we are running on our server. The container is based on the image tiangolo/nginx-rtmp. The setup is very simple, you can find the repository here: -stream-splitter
AV Synchronization support is enabled for DeepStream-6.0 release and onwards. Currently it is in alpha development stage. A sample app deepstream-avsync-app is also provided at app/sample_apps/deepstream-avsync for reference. This document provides the sample gstreamer pipelines.
A max-latency of 250msec is set on nvstreammux for rtmp input source. The value is set because max latency required for buffers from rtmpsrc to nvstreammux is 250msec. You can tune this value as per your requirement. Same value is set in audio path on audiomixer for the same reason.
Make sure that audio stream has same encoded configuration. (e.g. sampling rate). If these are different, audiomixer crashes. You may add audioconvert and audioresample before audiomixer for given source so that all inputs to audiomixer have same format and sampling rate.
There are many use cases for streaming video. Service providers such as Twitch are very popular for handling the web discovery and community management aspects of streaming, and free software such as OBS Studio is widely used for combining video overlays from multiple different stream sources in real time. While these platforms are very powerful, in some cases you may want to be able to host a stream that does not rely on other service providers.
In this tutorial, you will learn how to configure the Nginx web server to host an independent RTMP video stream that can be linked and viewed in different applications. RTMP, the Real-Time Messaging Protocol, defines the fundamentals of most internet video streaming. You will also learn how to host HLS and DASH streams that support more modern platforms using the same technology.
While ffmpeg is running, you can connect to your RTMP stream from a video player. If you have VLC, mpv, or another media player installed locally, you should be able to view your stream by opening the URL rtmp://your_domain/live/stream in your media player. Your stream will terminate after ffmpeg has finished playing the video. If you want it to keep looping indefinitely, you can add -stream_loop -1 to the beginning of your ffmpeg command.
Save and close the file. The stat.xsl file from this configuration block is used to style and display an RTMP statistics page in your browser. It is provided by the libnginx-mod-rtmp library that you installed earlier, but it comes zipped up by default, so you will need to unzip it and put it in the /var/www/html/rtmp directory to match the above configuration. Note that you can find additional information about any of these options in the Nginx-RTMP documentation.
The Nginx-RTMP module supports both standards. To add HLS and DASH support to your server, you will need to modify the rtmp block in your nginx.conf file. Open /etc/nginx/nginx.conf using nano or your preferred editor, then add the following highlighted directives:
Note: The Access-Control-Allow-Origin * header enables CORS, or Cross-Origin Resource Sharing, which is disabled by default. This communicates to any web browsers accessing data from your server that the server may load resources from other ports or domains. CORS is needed for maximum compatibility with HLS and DASH clients, and a common configuration toggle in many other web deployments.
You should now have an HLS stream available at _domain:8088/hls/stream.m3u8 and a DASH stream available at _domain:8088/dash/stream.mpd. These endpoints will generate any necessary metadata on top of your RTMP video feed in order to support modern APIs.
The configuration options that you used in this tutorial are all documented in the Nginx RTMP Wiki page. Nginx modules typically share common syntax and expose a very large set of configuration options, and you can review their documentation to change any of your settings from here.
Nearly all internet video streaming is implemented on top of RTMP, HLS, and DASH, and by using the approach that you have explored in this tutorial, you can provide your stream via other broadcasting services, or expose it any other way you choose. Next, you could look into configuring Nginx as a reverse proxy in order to make some of these different video endpoints available as subdomains.
Hi, I was exploring how to create a streaming server and as usual I found this community tutorial. After some research, I found the Digital Ocean marketplace application: -media-server-community-edition, trying this application is a very seamless experience for me.
As of today, 10/31/2022 the following command does not work properly. The file does not exist when I try to run it. I ended up getting the xsl file from the github repo. I did do a find on the system and was unable to find any stat.xsl.gz available, so it appears they may not package this file any longer with the rtmp module. Please update accordingly or let me know if I am wrong.
3a8082e126