====== RTL SDR streaming ====== ===== RTP stream ===== When is -M modulation set to fm, -s means width of modulation and it has to be the same as first -ar which measn sample rate of source. RTP needs to by pointed to special sever machine where we can listen. rtl_fm -f 403480405 -M fm -s 10000 -A std -l 0 | ffmpeg -f s16le -ac 1 -ar 10000 -i pipe:0 -acodec pcm_s16be -ar 44100 -f rtp rtp://192.168.1.103:1234 Put link to VLC playlist: rtp://192.168.1.103:1234 pros: * uncompressed cons: * not tested via internet ===== mp3 stream ===== For mp3 streaming is required ffstream. Example of ffstream configuration (/etc/ffserver.conf): # Port on which the server is listening. You must select a different # port from your standard HTTP web server if it is running on the same # computer. HTTPPort 8090 # Address on which the server is bound. Only useful if you have # several network interfaces. HTTPBindAddress 0.0.0.0 # Number of simultaneous HTTP connections that can be handled. It has # to be defined *before* the MaxClients parameter, since it defines the # MaxClients maximum limit. MaxHTTPConnections 2000 # Number of simultaneous requests that can be handled. Since FFServer # is very fast, it is more likely that you will want to leave this high # and use MaxBandwidth, below. MaxClients 1000 # This the maximum amount of kbit/sec that you are prepared to # consume when streaming to clients. MaxBandwidth 1000 # Access log file (uses standard Apache log file format) # '-' is the standard output. CustomLog - ################################################################## # Definition of the live feeds. Each live feed contains one video # and/or audio sequence coming from an ffmpeg encoder or another # ffserver. This sequence may be encoded simultaneously with several # codecs at several resolutions. # You must use 'ffmpeg' to send a live feed to ffserver. In this # example, you can type: # # ffmpeg http://localhost:8090/feed1.ffm # ffserver can also do time shifting. It means that it can stream any # previously recorded live stream. The request should contain: # "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify # a path where the feed is stored on disk. You also specify the # maximum size of the feed, where zero means unlimited. Default: # File=/tmp/feed_name.ffm FileMaxSize=5M File /tmp/feed1.ffm FileMaxSize 200K # You could specify # ReadOnlyFile /saved/specialvideo.ffm # This marks the file as readonly and it will not be deleted or updated. # Specify launch in order to start ffmpeg automatically. # First ffmpeg must be defined with an appropriate path if needed, # after that options can follow, but avoid adding the http:// field #Launch ffmpeg # Only allow connections from localhost to the feed. ACL allow 127.0.0.1 # MP3 audio Feed feed1.ffm Format mp2 AudioCodec libmp3lame AudioBitRate 512 AudioChannels 1 AudioSampleRate 44100 NoVideo # Ogg Vorbis audio # #Feed feed1.ffm #Metadata title "Stream title" #AudioBitRate 64 #AudioChannels 2 #AudioSampleRate 44100 #NoVideo # ################################################################## # Special streams # Server status Format status # Only allow local people to get the status ACL allow localhost ACL allow 192.168.0.0 192.168.255.255 #FaviconURL http://pond1.gladstonefamily.net:8080/favicon.ico # Redirect index.html to the appropriate site URL http://www.ffmpeg.org/ Strat server: ffserver Start rtl_sdr and stream mp3 to feed1: rtl_fm -f 96.5M -M fm -s 170k -A std -l 0 | ffmpeg -f s16le -ac 1 -ar 170000 -i pipe:0 -acodec libmp3lame -ar 44100 http://localhost:8090/feed1.ffm Put link to VLC playlist: http://192.168.88.55:8090/test.mp3 pros: * Should work via internet * multi client access cons: * compressed http://kmkeen.com/rtl-demod-guide/ https://medium.com/@luigifcruz/listening-live-fm-radio-over-the-network-with-rtl-sdr-2349c5abe878 https://lansley.com/2014/09/27/using-rtl_fm-and-ffmpeg-to-stream-radio-audio-over-network/ https://ffmpeg.org/ffserver.html#Configuration-file-syntax https://www.ffmpeg.org/sample.html