Streaming
General
See also Audio streams, HTTP, Networking, Playback, Sharing#Streaming, VoIP (voice/video/text/file in browser), Distros#Media
- https://github.com/ebu/awesome-broadcasting - A curated list of amazingly awesome open source resources related to broadcast technologies
Audio
- BS1770GAIN - a loudness scanner compliant with ITU-R BS.1770 and its flavors EBU R128, ATSC A/85, and ReplayGain 2.0. It helps normalizing the loudness of audio and video files to the same level.
Basic servers
ssh [user]@[host] "ogg123 -" < [podcast].ogg ssh [user]@[address] "mpg321 -" < [file].mp3
rtl_fm -f 90.4e6 -W -s 110k -r 48k - | sox -traw -r48k -es -b16 -c1 -V1 - -tmp3 - | socat -u - TCP-LISTEN:8080 This is the command I use to listen in Ubuntu: netcat 192.168... 8080 | play -t mp3 - # doesn't work?
sox -traw -r180k -es -b16 -c1 -V1 - -t flac - | cvlc - --sout ‘#standard{access=http,mux=ogg,dst=localhost:8080/audio.ogg}’ # doesn't work?
ffmpeg
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video.
ffmpeg -i <input> -c:a libopus -b:a bitrate <output>
ffmpeg … -f matroska - | process # pipe output to another program
modprobe snd-aloop pcm_substreams=1
VLC
GNUMP3d
- GNUMP3d - a streaming server for MP3s, OGG vorbis files, movies and other media formats.
trx
- trx - a simple toolset for broadcasting live audio from Linux. It sends and receives encoded audio over IP networks, via a soundcard or audio interface. It can be used for point-to-point audio links or multicast, eg. private transmitter links for a radio station or other live audio distribution. In contrast to traditional streaming, high quality wideband audio (such as music) can be sent with low-latency, typically as low as a few milliseconds, and incredibly fast recovery from dropouts. It works favourable as a replacement for traditional ISDN lines and hardware ISDN codecs. Features include: Very simple to set up, Low latency with fast recovery from dropouts, Full control over latency and buffers, Supports IPv4 and IPv6, including multicast. Unlike TCP streaming such as Icecast, trx uses RTP/UDP with handling of dropped packets and network congestion that is more appropriate to live or realtime audio. Much of this comes courtesy of the brilliant Opus audio codec. The result is an incredibly graceful handling of network loss or dropouts.
Geluid
- https://github.com/kulek1/Geluid - Made with Electron. Streams audio from your soundcard to a browser in an easy way
GlassCoder
- https://github.com/ElvishArtisan/GlassCoder - Minimalist audio encoder for generating live streams.
txproto
- https://github.com/cyanreg/txproto - Records and streams. Think of it as a bloatless, NIH-less OBS. Configuration is currently done via src/txproto_main.c, at the very end of the file. Toggle the if 0/1 flags to enable/disable features like mixing and filtering. Change the encoder to h264_vaapi to enable hardware encoding. Change the source via the _target parameters of the capture context structures. All available sources are listed on capture system init.There's currently a single command line argument used - the destination URL. If there's http in the name, the muxer is switched to dash. If rtmp is present, the flv protocol is used.
MAST
- https://github.com/njh/mast - set of command line tools for working with multicast Audio over IP streams that use the Real Time Protocol (RTP). It can be used to interoperate with audio streams that are compatible with the AES67 standard.
Source clients
IceS
- IceS - a source client for the Icecast streaming server. The purpose of this client is to provide an audio stream to Icecast, so that one or more listeners can access the stream. With this layout, the source client can be situated remotely from the Icecast server.The primary example of a streaming server used is Icecast 2, although others could be used if certain conditions are met.IceS 2.x supports sending an Ogg Vorbis stream to an Icecast server.For MP3 support you may want to take a look at IceS 0.x.
DarkIce
- DarkIce - a live audio streamer. It records audio from an audio interface (e.g. sound card), encodes it and sends it to a streaming server.
- DarkSnow - GUI for DarkIce. The Revolution Will Be Streamed.
BUTT
- butt - broadcast using this tool, an easy to use, multi OS streaming tool. It supports SHOUTcast and Icecast and runs on Linux, Mac OS X and Windows. The main purpose of butt is to stream live audio data from your computers Mic or Line input to an Shoutcast or Icecast server. Recording is also possible. It is NOT intended to be a server by itself or automatically stream a set of audio files.
AltaCast
- AltaCast - a continuation of the Oddcast/Edcast streaming software that can stream to either Icecast or SHOUTcast servers.
jogma
- https://github.com/wrl/jogma - a program that streams OggFLAC data to an Icecast 2.4.0 server from JACK. it does not do anything else. just OggFLAC, just Iceast 2.4.0, and just JACK.
ezstream
- https://github.com/xiph/ezstream - command line source client for Icecast streaming server
ShuiCast
- https://github.com/torteshui/ShuiCast - a plugin for both Winamp and Foobar2000 that provides the ability to broadcast various audio formats to a few of the major broadcasting servers. It is a continuation of the Oddcast/Edcast streaming software that can stream to either Icecast or Shoutcast servers, integrating changes made by the AltaCast and Edcast-Reborn spinoffs. It aims for unifying all the different spinoffs with a better object-oriented design and a clean codebase. It is work in progress (see Status).
streammyaudio
- https://github.com/schollz/streammyaudio - program/server lets you livestream audio from your computer to a website as easily as possible. How easy? You should be able to just download a release, double-click it, and stream!Use it to play demos for people you know, or make a live podcast, or stream your piano practice, or whatever you'd like.live website: https://streammyaudio.com
ShoutVST
- https://github.com/Gargaj/ShoutVST - a VST that enables streaming sound into Icecast directly from VST hosts, ideal for streaming live performances directly from applications like Traktor or Ableton without the use of loopback methods.
- https://github.com/Iunusov/ShoutVST - a VST that enables streaming sound into Icecast/ShoutCast directly from VST hosts, ideal for streaming live performances directly from applications like Traktor or Ableton without the use of loopback methods. Only Windows is supported at the moment.
Advanced servers
Shoutcast
- ShoutCastProxy - When you're in a building where more then one user in different rooms is listening to the same ShoutCast audio-stream, bandwidth is wasted: that's where ShoutCastProxy comes in.You can run ShoutCastProxy on a central server. It'll connect to a certain server if any client is connecting and automatically disconnects if no clients are listening.You can, of course, also chain multiple proxies.
Icecast
Liquidsoap
- Liquidsoap - a powerful and flexible language for describing your streams. It offers a rich collection of operators that you can combine at will, giving you more power than you need for creating or transforming streams. But liquidsoap is still very light and easy to use, in the Unix tradition of simple strong components working together. A swiss-army knife for multimedia streaming, notably used for netradios and webtvs. It has tons of features, it's free and it's open-source!
DeeFuzzer
- https://github.com/yomguy/DeeFuzzer - a light and instant application for streaming audio and video over internet. It is dedicated to communities who wants to easily create web radios, web TVs, live multimedia relays or personal home radios, with metadata management and cool features.
StreamMachine
- https://github.com/StreamMachine/StreamMachine - an open-source streaming audio server aimed at pushing innovation for radio stations that have spent too many years running old technology like Shoutcast and Icecast. The project has two goals: emulating the traditional streaming experience and building support for new features that push the radio listening experience forward. Currently StreamMachine supports traditional Shoutcast-style streaming and HTTP Live Streaming.
AvCaster
- https://github.com/bill-auger/av-caster - built upon the JUCE framework, utilizing gStreamer as the media backend and libircclient as the chat backend. It is currently capable of recording to file or streaming to an RTMP server with screen capture (full-screen), webcam (full-screen or overlay), and audio (mono or stereo). It is moderately configurable, with preset configurations for streaming via popular servers such as livecoding.tv, and allows custom user-defined configurations to be stored as additional presets. This initial target is GNU/Linux, but it has been designed for portability and includes starter projects for AndroidStudio, CodeBlocks, VisualStudio, and xCode IDEs. Let us know if it would interest you to see AvCaster ported to another platform (e.g. Windows, Mac, mobile) by leaving a note on the relevant Cross-platform Milestone issue. Feel free to open issues for other platforms if they are not yet listed.
AzuraCast
- AzuraCast - a self-hosted, all-in-one web radio management kit. Using its easy installer and powerful but intuitive web interface, you can start up a fully working web radio station in a few quick minutes. AzuraCast works for web radio stations of all types and sizes, and is built to run on even the most affordable VPS web hosts.
ffmpeg-broadcaster
- https://github.com/bill-auger/ffmpeg-broadcaster - two analogous shell scripts for broadcasting liveany of desktop screen capture, webcam, audio, static images, text overlaythrough RTMP/flash/wowza servers such as livecoding.tv and concertwindow.com. ffmpeg implementation - full-featured and works quite well. gstreamer implementetion - work in progress
txproto
- https://github.com/cyanreg/txproto - A fully scriptable and flexible multimedia streaming/handling program.
Radio / Playout
- https://en.wikipedia.org/wiki/Playout - the generation of the source signal of a radio or television channel produced by a broadcaster, coupled with the transmission of this signal for primary distribution or direct-to-audience distribution via any network. Such radio or television distribution networks include terrestrial broadcasting (analogue or digital radio), cable networks, satellites (either for primary distribution intended for cable television headends or for direct reception, DTH / DBS), IPTV, OTT Video, point-to-point transport over managed networks or the public Internet, etc.
Internet DJ Console
- Internet DJ Console is a project started in March 2005 to provide a powerful yet easy to use source-client for individuals interested in streaming live radio shows over the Internet using Shoutcast or Icecast servers. Because of the large number of streaming applications that already existed but did little more than stream a pair of audio channels or a fixed playlist, it was decided that IDJC would be the opposite and simulate audio hardware to cut down the expense of creating a home studio.
Rivendell
- Rivendell - a complete radio broadcast automation solution, with facilities for the acquisition, management, scheduling and playout of audio content. It has all of the features one would expect in a modern, fully-fledged radio automation system, including support for both PCM and MPEG audio encoding, full voicetracking and log customization as well as support for a wide variety of third party software and hardware. As a robust, functionally complete digital audio system for broadcast radio applications, Rivendell uses industry standard components like the GNU/Linux Operating System, the AudioScience HPI Driver Architecture and the MySQL Database Engine. Rivendell is available under the GNU Public License.
Airtime
- Airtime - online radio has never been easier. Airtime's intuitive interface lets you drag and drop shows for simple programming. Organise and collaborate with producers, DJs and programmers, wherever they are. Stream direct to Icecast or SHOUTcast, and show what's playing with widgets.
Libretime
- LibreTime - an open source radio automation and broadcasting solution helping communities get on-air with ease.The platform can be easily deployed on dedicated hardware and VMs, on-prem or in the cloud, “free as in freedom” free. An open source radio automation and broadcasting solution helping communities get online or terrestrial radio stations on-air with ease. It is a community managed fork of the AirTime project. It is managed by a friendly inclusive community of stations from around the globe that use, document and improve LibreTime. The platform can be easily deployed on dedicated hardware and VMs, on-prem or in the cloud, “free as in freedom” free.
- https://github.com/LibreTime/libretime - makes it easy to run your own Join us in fixing bugs and in defining how we manage the codebase going forward.
ARAS
ffplayout
- ffplayout - the 24/7 cloud ready playout solution. ffplayout is made mostly for Linux, but the engine can run everywhere, where Rust can be compile and ffmpeg run. But outside of Linux you have to use your one startup/daemon solution. The most tested system is Debian, if you have permission problems on systems with Selinux you have to get help from communities how have experience in that area
ffplayout comes in three programs, which are interdependent:
- ffplayout; this program can run by it self and don’t need the other ones if you don’t need a GUI, then you will be totally fine with it
- ffplayout-api (ffpapi) the API is the interface between the frontend and the engine, with that you can control the engine
- ffplayout-frontend the frontend gives you a web based GUI for managing the engine and the media storage
When we talk about the features, we mostly talk about what the ffplayout engine can do. Because this is the heart of the project, and the other ones are only for controlling. The main idea behind ffplayout is, that it works with playlists. Every day has its one playlist, so to have a continuous endless stream every playlist needs to be 24 hours long. When a playlist is not long enough the engine will fill the rest with a filler clip, or with black. Is the playlist longer it will be trimmed. The playlist will be dynamically readed, that mean that you can still edit it, while it is already playing. But you can only change or add clips on a position in the future and next but one clip. In other words: when clip 7 in playlist is currently playing, you can change and add clips after position 9. A second scenario is to, that ffplayout can play clips from a given folder. The engine also monitor this folder for changes. If clips are added; deleted or moved, the engine recognize this and update its file list. the folder mode has two options: 1. it can play in sorted order, or 2. it can play in a random order.
SuperConductor
- https://github.com/SuperFlyTV/SuperConductor - A playout client for Windows/Linux/macOS that will let you control CasparCG Server, BMD ATEM, OBS Studio, vMix, OSC-compatible devices, HTTP (REST)-compatible devices, and more!
Open Playout Automation
- https://github.com/jaskie/PlayoutAutomation - television broadcast solution. It is in development in Polish national television broadcaster - TVP (Telewizja Polska) and works as main MCR play-out system in its regional channels. Project uses SVT's CasparCG as clip player. It also intensively uses FFmpeg as media information and transcoding tool. It can be used as a simple (even multi-) channel-in-a-box solution, as well as in much more sophisticated environment (e.g. 2 players and control workstation with additional stuff, as GPI controlled devices).
CasparCG
- CasparCG - a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs as a layerbased real-time compositor. It has been in 24/7 broadcast production since 2006. Used by most broadcasters in Europe.
- https://github.com/CasparCG/server - a Windows and Linux software used to play out professional graphics, audio and video to multiple outputs. It has been in 24/7 broadcast production since 2006. Ready-to-use downloads are available under the Releases tab
- https://github.com/CasparCG/client - Client software primarily used with the CasparCG Server software for audio and video playout, to control graphics and recording, but it can also be used for other tasks within television broadcast.
- https://github.com/CasparCG/help/wiki/AMCP-Protocol - The Advanced Media Control Protocol (AMCP) is the main communication protocol used to control and query CasparCG Server.
- https://github.com/CasparCG/media-scanner - A service used with CasparCG Server software for scanning media located on the server. Queried with query and thumbnail commands through CasparCG Server using AMCP.
Nebula
- Nebula - an open-source media asset management (MAM) and broadcast automation system. Powerful and stable enough to run 24/7 multichannel TV or radio broadcast or OTT services, both on-premises or in a shared environment with great emphasis on simplicity, flexibility, and speed.
- https://github.com/nebulabroadcast/nebula - an open source broadcast automation and media asset management system for television, radio and VOD platforms. Since 2012 Nebula has proven stable and reliable software in 24/7 broadcast environment and it is now used by TV and production companies worldwide. Simple and fast media catalog based on EBU Core includes a description of asset genre, editorial format, atmosphere, rights, relations, and technical metadata, while its very fast search engine makes navigation among media files very easy. A preliminary media analysis and normalization guarantee its standards compliance. This process includes metadata extraction, aspect ratio fixing, crop and rotation detection, smart frame rate and size normalization and EBU R128 loudness correction. Automatic cross-conversion servers transcode files for playout, web, low-res proxies, customer previews, etc. For h.264 and HEVC, Nebula can take advantage of NVIDIA nvenc and leverage the speed of transcoding using GPUs. Firefly client provides a simple and user-friendly way to schedule linear broadcasting. Macro- and micro-scheduling patterns are finished intuitively using drag&drop, including live events.
- Firefly - a desktop client application for Nebula broadcast automation system.
Conti
- https://github.com/immstudios/conti - a simple linear video playout server. It enables you to broadcast your video files with minimal configuration and hardware requirements. Conti demo script can be modified to run simple stand-alone channels such as lobby TVs, info channels, community TV stations, and so on. For more complex projects, Nebula broadcast automation system can be used for scheduling and playout control.
Bridge
- https://github.com/svt/bridge - An experimental extensible client for playing out real time graphics
GUI playback
Radio Tray
- RadioTray - a simple music streaming player that lives on the system tray. By clicking on the RadioTray icon, you'll be presented with a list of pre-configured online radios. By selecting one of those radios, it will start playing.
Right now, Radio Tray bundles with pre-configured radios. But you can and should add more manually. Adding online radios to the list is very simple. By right-clicking the RadioTray icon and selecting "Config radios...", you may add the name and URL of an online radio. This version allows you to add direct URLs (to media streams or files) and URLs pointing at playlist formats (pls, m3u, asx, wax, wvx). RadioTray was written in Python and uses gtk and gstreamer libraries (you'll need these to run RadioTray).
Radio Tray NG
- https://github.com/ebruck/radiotray-ng - active development
- https://github.com/IngoMeyer441/radiotray-ng-mpris - a wrapper for Radiotray-NG to add an MPRIS2 interface which integrates well with desktop environments (like GNOME, KDE or XFCE) or desktop independent music player control tools like playerctl.
Radio Tray Lite
- https://github.com/thekvs/radiotray-lite - Online radio streaming player with minimum interface that runs on a Linux system tray
Great Little Radio Player
- Great Little Radio Player - A robust internet radio station streamer for various Linux distributions. It connects to web sites offering radio streaming and lets you play radio stations directly from that locations.
Nuvola Player
- Nuvola Player is a runtime for web-based music streaming services providing more native user experience and integration with Linux desktop environments than usual web browsers can offer. It tries to feel and look like a native application as possible.
MellowPlayer
- https://github.com/ColinDuquesnoy/MellowPlayer - a free, open source and cross-platform desktop application that runs web-based music streaming services in its own window and provides integration with your desktop (hotkeys, multimedia keys, system tray, notifications and more). MellowPlayer is a Qt based alternative to NuvolaPlayer initially crafted for KaOS. MellowPlayer is written in C++ and QML.
piwadio
- piwadio - Web Radio Player ( python websockets server / Mplayer - HTML5 client )
streamtuner
- streamtuner - a stream directory browser. Through the use of a plugin system, it offers an intuitive GTK+ 2.0 interface to Internet radio directories such as SHOUTcast and Live365.
Gradio
- https://github.com/haecker-felix/gradio - dead. see Shortwave.
Shortwave
- https://gitlab.gnome.org/World/Shortwave - Find and listen to internet radio stations. Spiritual successor of Gradio.
Tuner
- https://github.com/louis77/tuner - Discover and Listen to your favourite internet radio stations.
krudio
- https://github.com/alexyalinc/krudio - Radio tray for linux QT
QRadioTray
- https://github.com/giomatfois62/QRadioTray - Qt-based Web radio player in system tray
ExclusiveRadio
- https://github.com/Axel-Erfurt/ExclusiveRadio - ExclusiveRadio Tray App for Mint/Ubuntu
CLI playback
radio.py
- radio.py - a command-line frontend for mplayer designed to make listening to online radio easy. Features: Allows you to easily play your favorite online radio stations. Adding new stations to radio.py is very simple. Record radio streams. Sleep and Wake-Up features. Search Tune-In for new stations.
DRadio
- DRadio - a Danmarks Radio netradio, podcast, and TV player. It is a terminal based frontend to MPlayer that collects the available channels/podcasts for convenient browsing.
pmrp
- https://github.com/hakerdefo/pmrp - Probably best Internet radio player script.
Curseradio
- https://github.com/chronitis/curseradio - Command line radio player. Curses, Python 3, MPV.
pyradio
- https://github.com/sdushantha/pyradio - Play your favorite radio station from the terminal
PyRadio
- PyRadio - a console based Internet radio player. It is implemented in Python, and uses mplayer for media playback. Download version 0.2.
Shelldio
- https://github.com/CerebruxCode/Shelldio - Ένα απλό shell script για να παίζετε στο Linux, macOS και BSD τερματικό, τους αγαπημένους σας online ραδιοφωνικούς σταθμούς
radio-active
- https://github.com/deep5050/radio-active - Play any radios around the globe right from the terminal zap
Web playback
audioplayer
- https://github.com/Rello/audioplayer - A music player for FLAC, MP3, MP4, streams, and more with playlist support and share player.
KlangSendWS
- https://github.com/lucdoebereiner/KlangSendWS - This project includes a node.js websocket server that broadcasts audio (vorbis encoded) from jack (via ffmpeg) to its clients. It has been tested with Chrome and Firefox.
Radiolise
- https://radiolise.com
- https://gitlab.com/radiolise/radiolise.gitlab.io - Enjoy your favorite TV and radio streams!
Radiocloud
- Radiocloud
- https://github.com/vladimyr/radiocloud - Online radio player (supports shoutcast streams)
Other playback
- https://github.com/bobrathbone/piradio6 - Internet Radio for Raspberry Pi
- https://github.com/schreibfaul1/ESP32-MiniWebRadio - Internetradio with ESP32, VS1053 MP3 Module and SPI TFT Display with Touchpad
Ripping
Streamripper
- Streamripper - GPL application that lets you record streaming mp3 to your hard drive
streamripper "http://107.182.233.214:8004/stream3/" -u "test" -r # record a station, change userid as streamripper is blacklisted on some servers, relay the stream to localhost port 8000
Streamtuner
- http://www.nongnu.org/streamtuner streamtuner - a stream directory browser. Through the use of a plugin system, it offers an intuitive GTK+ 2.0 interface to Internet radio directories such as SHOUTcast and Live365. With streamtuner, you can: Browse the SHOUTcast Yellow Pages, Browse the Live365 directory, Browse the Xiph.org (aka icecast.org, aka Oddsock) directory, Browse the basic.ch DJ mixes, Manage your local music collection, with full support for ID3 and Vorbis metadata editing, Listen to streams, browse their web page, or record them using programs such as Streamripper,
Implement new directory handlers as tiny Python scripts or as dynamically loadable modules written in C, Retain your favourite streams by bookmarking them, Manually add streams to your collection.
Tunapie
- TunaPie - a directory browser for Internet radio and TV streams. In theory it should work on any UNIX-based system. It has been tested on Linux and Max OS X. As of 0.9.6, it is compatible with the Icecast directory as well as the Shoutcast (winamp) stream directory service. Tunapie allows you to search for streams and then launch your audio player (XMMS) or NSV viewer (Mplayer) of choice. It also allows recording of audio and video streams using streamripper.
KStreamRipper
- KStreamRipper - (formaly KRadioRipper) is a GUI program for recording Internet radios and other streams which comes with a stream catalog. It can split the stream and create an own file for each track - with corresponding metadata.
Services
- http://www.ambient-mixer.com - mix ambient found sounds
- http://stereomood.com - mood tag
- http://plug.dj - social playlist
- http://mycloudplayers.com - playlist enqueuing
- http://redditplayer.phoenixforgotten.com - plays youtube and soundcloud links from specified music style subreddits
- http://hypem.com - from blogs
- http://www.indieshuffle.com - curated playlist
- 8tracks - internet radio created by people, not algorithms.
- http://offliberty.com - web ripper for YouTube and SoundCloud
SoundCloud
youtube-dl --download-archive completed.txt --add-metadata --write-thumbnail -c -i -r 500K https://soundcloud.com/USERNAME/likes
Spotify
Adverts for free accounts
- https://github.com/khanhas/spicetify-cli - Command-line tool to customize Spotify client. Supports Windows, MacOS and Linux.
- Spotiam - Windows only, Winamp-like UI for spotify
- https://github.com/SecUpwN/Spotify-AdKiller - We all love Spotify, but sometimes people (like us) want to throw a party without having to listen to interrupting ads before having bought Spotify Premium. Well, with this killer project, now you can! This is for testing purposes ONLY! Spotify is a fantastic service and worth every penny. This script is NOT meant to circumvent buying premium! Please do consider switching to premium to support Spotify - especially if you're going to use it on mobile. If the script does not work for you, help us improve it!
- https://github.com/mahkoh/spotblock - a minimal spotify ad blocker daemon for GNU/Linux.
- https://github.com/dtcooper/raspotify - a Debian package and associated repository for Debian Stable (Currently Debian 11 "Bullseye") and other Debian Stable based/compatible OS's (your mileage may vary) which thinly wraps a fork of the awesome librespot library by Paul Lietar and others up as a systemd daemon. Raspotify is intended to be used in a headless enviroment. For desktop OS's spotifyd offers similar functionality and is a better choice. If you're looking for a turnkey audio solution for Raspberry Pi's with Spotify Connect support we recommend moOde™ audio player. Librespot, and therefore Raspotify, requires a premium account.
Atraci
- Atraci is a streaming application for Windows, Mac and Linux that lets you listen instantly to more than 60 million songs (way more than iTunes's 26 million). It requires no sign up, displays no ads and is 100% safe.
Jamendo
Apps
Video
- https://en.wikipedia.org/wiki/Switched_video - or switched digital video (SDV), sometimes referred to as switched broadcast (SWB), is a telecommunications industry term for a network scheme for distributing digital video via a cable. Switched video sends the digital video in a more efficient manner so that additional uses may be made of the freed up bandwidth. The scheme applies to digital video distribution both on typical cable TV systems using QAM channels, or on IPTV systems. Users of analog video transmitted on the cable are unaffected.
- https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP - DASH, MPEG-DASH
- LinuxMusicians forum: -SOLVED- Live streaming and recording video - w/ gstreamer script with pip (picture-in-picture)
Systems
IPTV
- https://en.wikipedia.org/wiki/IPTV - the delivery of television content over Internet Protocol (IP) networks. This is in contrast to delivery through traditional terrestrial, satellite, and cable television formats. Unlike downloaded media, IPTV offers the ability to stream the source media continuously. As a result, a client media player can begin playing the content (such as a TV channel) almost immediately. This is known as streaming media.
- https://github.com/fastogt/iptv - Free IPTV cloud server
- https://github.com/andoma/iptvdump - IPTV transport stream dumper
- Megacubo - an intuitive, multi-language and cross-platform IPTV player with support for history, bookmarks and much more. You can add as many IPTV lists you want (M3U format) and record live broadcasts to your PC or device. With Miniplayer mode, you can work or navigate on your PC while watching any broadcast.
RTSP
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol - a network control protocol designed for use in entertainment and communications systems to control streaming media servers. The protocol is used for establishing and controlling media sessions between end points. Clients of media servers issue VHS-style commands, such as play, record and pause, to facilitate real-time control of the media streaming from the server to a client (Video On Demand) or from a client to the server (Voice Recording). The transmission of streaming data itself is not a task of RTSP. Most RTSP servers use the Real-time Transport Protocol (RTP) in conjunction with Real-time Control Protocol (RTCP) for media stream delivery. However, some vendors implement proprietary transport protocols. The RTSP server software from RealNetworks, for example, also used RealNetworks' proprietary Real Data Transport (RDT).
SRT
- SRT Alliance - Open-source SRT - Secure Reliable Transport
- https://en.wikipedia.org/wiki/Secure_Reliable_Transport - an open source video transport protocol developed originally by Haivision. According to SRT Alliance, an organisation that promotes the technology, it optimises streaming performance across unpredictable networks, such as the Internet, by dynamically adapting to the real-time network conditions between transport endpoints. This helps minimise effects of jitter and bandwidth changes, while error-correction mechanisms help minimise packet loss. SRT supports end-to-end encryption with AES.[1] When performing retransmissions, SRT only attempts to retransmit packets for a limited amount of time based on the latency as configured by the application.
Server
Tvheadend
- Tvheadend - a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). The Analog video (V4L) is supported directly up to version 3.4. In recent version, the pipe:// source (in IPTV network) might be used to obtain the MPEG-TS stream generated by ffmpeg/libav from a V4L device.
DVBlast
- DVBlast - a simple and powerful MPEG-2/TS demux and streaming application.
VLMa
- VLMa - an application to manage broadcasts of TV channels, received through digital terrestrial or satellite ways. Its interface is provided as a web-site written in Java. It is also capable of streaming audio and video files. VLMa consists of a deamon (called VLMad) and a web interface (called VLMaw).
Multicat
- Multicat - Simple and efficient multicast and transport stream manipulation.
nginx-rtmp-module
- Streaming with nginx-rtmp-module - provides HLS and MPEG-DASH live streaming capabilities for those who want a lightweight solution based on the HTTP protocol. The stream is published in the MPEG-TS format over HTTP. This makes it possible to use all the power and flexibility of nginx HTTP configurations including SSL, access control, logging, request limiting etc. MPEG-TS is a widely adopted, well known and well documented streaming format.
C++ RTMP Server
- https://github.com/j0sh/crtmpserver - C++ RTMP Server (a.k.a crtmpserver)
libav-RTMP-Streaming
- https://github.com/juniorxsound/libav-RTMP-Streaming - film_projector A C++ app that streams a video to an RTMP endpoint using libav
RTMP-Playlist
- https://github.com/fyroc/RTMP-Playlist - Libav/FFMPEG streaming solution to RTMP with a dynamic playlist.
rtspdump
- rtspdump - a Windows program which downloads multimedia stream (such as live broadcasts) from a Microsoft WMServer.
Flumotion
- Flumotion - a streaming media server created with the backing of Fluendo. It features intuitive graphical administration tools, making the task of setting up and manipulating audio and video streams easy for even novice system administrators. Flumotion is released under the LGPL.
OBS Studio
- OBS Studio - Free and open source software for video recording and live streaming. [5]
- https://github.com/CatxFish/obs-v4l2sink - obs studio output plugin for Video4Linux2 device
- OBS.Ninja - lets you bring remote video feeds into OBS via WebRTC
- https://github.com/exeldro/obs-audio-monitor - Plugin for OBS Studio to add Audio Monitor dock and filter. It allows you to put the audio of a OBS source to an audio device by adding the Audio Monitor filter on the Source in OBS Studio.
- https://github.com/Alzy/obs-midi - Use MIDI devices to trigger events in OBS and visa versa.
- https://github.com/steveseguin/vdo.ninja - lets you bring remote video feeds into OBS or other studio software via WebRTC.
- https://github.com/Xaymar/obs-StreamFX - plugin for OBS® Studio which adds many new effects, filters, sources, transitions and encoders - all for free! Be it 3D Transform, Blur, complex Masking, or even custom shaders
- https://github.com/obsproject/obs-amd-encoder - AMD Advanced Media Framework Encoder Plugin for Open Broadcaster Studio
- https://github.com/univrsal/input-overlay - Show keyboard, gamepad and mouse input on stream
- https://github.com/fzwoch/obs-gstreamer - GStreamer OBS Studio plugin
PyLivestream
- https://github.com/scivision/PyLivestream - Simple cross-platform FFmpeg-based live streaming to YouTube, Periscope, Twitch, Facebook Live and more
Theora Streaming Studio
- Theora Streaming Studio - a GUI to make theora video streams using ffmpeg2theora software
WebcamStudio
- WebcamStudio - A multifeatured virtual webcam software to broadcast over the Internet
Livestreamer
- Livestreamer - a command-line utility that pipes video streams from various services into a video player, such as VLC. The main purpose of Livestreamer is to allow the user to avoid buggy and CPU heavy flash plugins but still be able to enjoy various streamed content.
Afrostream Media Servers
- https://github.com/Afrostream/afrostream-media-server - Afrostream Media Servers (AMS) let you create DASH format on the fly with one or multiple audio/video mp4 files [6]
videostreamer
- https://github.com/horgh/videostreamer - provides a way to stream video from an input source to HTTP. It remuxes a video input into an MP4 container which it streams to connecting clients. This provides the ability to stream an input source that may have limited connections (it opens at most one connection to the input), is not accessible via HTTP, or is not easily embeddable in a website.
NGINX
Websockets
Streama
- Streama - Host your own Streaming Application with your media library. It's like Netflix, but self-hosted!
UltraGrid
- https://github.com/CESNET/UltraGrid - UltraGrid brought by CESNET's Laboratory of Advanced Networking Technologies (Sitola) is a software implementation of high-quality low-latency video and audio transmissions using commodity PC and Mac hardware. Supported resolutions range through HD (1920x1080) up to 4K (4096x2160) with up to 60 frames per second. The high-quality is achieved either by using uncompressed streams or streams with very low compression ratio. End-to-end transmission latency (i.e., all the way from the camera to the display) is about 100ms, but it varies based on camera and capture cards being used. UltraGrid was originally a research project used to demonstrate the possibilities of 10Gbps networks and to study multi-point data distribution in such environments. Recent advances in the field of GPU-accelerated low-latency codecs extend its usability also to Gigabit networks. UltraGrid is supported on PCs with Linux operating system and Macs with MacOS X.
Plumi
- Plumi - enables you to create your own sophisticated video-sharing site. It includes a beautiful adaptive skin using Diazo, server-side transcoding of most video formats, upload progress bar, thumbnail extraction, HTML5 video playback and embedding, subtitles using Amara, large file uploading via FTP, social media integration, threaded commenting and user feedback forms, customised user profiles and a range of other useful features.
kimera
- https://github.com/luigifreitas/kimera - Low-latency hardware accelerated codec based video streaming utility.
ZLMediaKit
- https://github.com/xiongziliang/ZLMediaKit - lightweight RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/GB28181 server and client framework based on C++11
Owncast
- https://github.com/owncast/owncast - Take control over your live stream video by running it yourself. Streaming + chat out of the box. [8]
Boltstream
- boltstream.me - Live Video Streaming Website + Backend [9]
Music
- https://github.com/torch2424/live-stream-radio - a 24/7 live stream video radio station video_camera radio CLI built with Node.js and powered by FFmpeg. Meaning, This will allow for live streaming a video of music, playing over a video/gif, with the music information, and other overlay items framed_picture. Music and video are chosen from their respective folders in a defined config.json that can be generated using the CLI. Generated projects come included with some songs and videos to get up and running quickly! Also, this project has a REST HTTP JSON Api, to allow for interfacing with your stream using a frontend woman_technologist.
P2P
BitTorrent
See also Sharing#BitTorrent
- https://github.com/mafintosh/peerflix - Streaming torrent client for node.js
Peer5
- Peer5 - a peer-to-peer Content Delivery Network (P2P CDN) for massively-scaled HLS & MPEG-DASH streaming. We dynamically construct an elastic mesh network consisting of viewers that integrates seamlessly with the existing edge server infrastructure and dramatically improves its performance, creating the ultimate Multi-CDN.
Fastcast
- Fastcast - Stream peer-to-peer audio and video content
Services
- http://www.fmgem.com/ - ugly but cross service
- http://www.bop.fm/
- http://fora.tv/
- http://www.poptech.org/popcasts
- http://www.charlierose.com/
- http://www.nfb.ca/
- http://www.nobelprize.org/mediaplayer/
- http://tubegnosis.com/
- http://www.rinf.tv/
- http://www.webofstories.com/
- http://seminarstreams.com/seminars/seminar-list.aspx
- yuptude! - a tiny bookmarklet that you can use to speed up or slow down videos in your browser.With yuptude, you can control videos on Netflix, YouTube and many other sites that use HTML5 video.And it works in popular browsers on both Windows & Mac computers.
YouTube
Web tools
- http://www.playbackloop.com/playlists/PLhcKR_tPpF9Bk5kMnwFGRP4-Wj7XfPczz - reverse the order of playlists
Desktop player
- https://github.com/youtplayer/yout - YouTube playlist player on Desktop without browsers. Free, no YouTube ads, floating window. Available for Linux, Mac and Windows.
- https://github.com/Wojnstup/Pipecat - A command line Youtube music player written in python. It's an app written for Linux. It also supports offline playlists that are stored in a playlists.db file.
Streaming tools
to sort
- http://animoto.com/ - make slideshows
Ripping
- GMiMMS - a frontend to MiMMS (Multimedia Stream ripper). It uses GTK+-2.x for the graphical userinterface. It is mainly written for Linux but should also be able to be compiled for Windows®. It is very easy to be used. You just specify the Multimedia-Stream URL and the output file and GMiMMS runs MiMMS in an other thread. You can also specify the mms-method and the length of the recording in minutes.
- Wazzuf Ripper - a shell script (bash) to rip various media as DVD (Digital Versatile Disc) and BD (Blu-ray Disc) to .mkv file(s) (Matroska container).
Various
- https://fmtvp.github.io/tal - frontend (iplayer, etc.)
- https://github.com/mltframework/melted
- http://www.mltframework.org/bin/view/MLT/Projects
- https://en.wikipedia.org/wiki/Media_Lovin'_Toolkit
- Ingex is a branded technology from BBC Research & Development It is a suite of open source software applications designed for low-cost flexible tapeless recording in: AV Production, and Archiving Facilites
- Stremio is an app that helps you organize and instantly watch your favorite videos, movies, TV series and TV channels. [15]
- http://mkchromecast.com - Cast your macOS or Linux audio/video to your Google Cast devices
- Chrome Web Store: Cast with MkChromecast
- https://github.com/streamlink/streamlink - a CLI utility that pipes flash videos from online streaming services to a variety of video players such as VLC, or alternatively, a browser. The main purpose of streamlink is to convert CPU-heavy flash plugins to a less CPU-intensive format. Streamlink is a fork of the Livestreamer project.
- https://github.com/skorokithakis/catt - Cast All The Things allows you to send videos from many, many online sources to your Chromecast.
- https://github.com/kripton/jukuzregie - Qt application for live video streaming from multiple sources
- https://github.com/flok99/HzFlut - Like pixelflut, but for audio instead
- https://github.com/berrberr/streamkeys - Chrome extension to send "global" (ie. across the browser) hotkeys to various online media players.
- tube - a Youtube-like (without censorship and features you don't need!) Video Sharing App written in Go which also supports automatic transcoding to MP4 H.265 AAC, multiple collections and RSS feed
- https://github.com/SuperSonicHub1/Slasher - A commmand-line tool and Python library for autonomous editing of livestreams via live chat activity.
- https://github.com/LordTocs/CastMate - an all-in-one Broadcaster Automation Suite for Twitch. It allows you to build compelling interactive stream setups using without writing any code. It features simple click and drag automations and overlays. Triggers In CastMate you can setup triggers to respond to twitch events like channel point redemptions, bits being cheered, gaining a follower, receiving a sub, chat messages, being raided, hype trains, and more. In response to a trigger you can setup any number of actions using the click and drag UI.
AVTP
- https://en.wikipedia.org/wiki/Audio_Video_Bridging - a common name for the set of technical standards developed by the Institute of Electrical and Electronics Engineers (IEEE) Audio Video Bridging Task Group of the IEEE 802.1 standards committee. This task group was renamed to Time-Sensitive Networking Task Group in November 2012 to reflect the expanded scope of work. The charter of this organization is to "provide the specifications that will allow time-synchronized low latency streaming services through IEEE 802 networks". These consist of: IEEE 802.1BA: Audio Video Bridging (AVB) Systems; IEEE 802.1AS: Timing and Synchronization for Time-Sensitive Applications (gPTP); IEEE 802.1Qat: Stream Reservation Protocol (SRP); and IEEE 802.1Qav: Forwarding and Queuing for Time-Sensitive Streams (FQTSS).
Wifibroadcast
- media.ccc.de - Wifibroadcast - How to convert standard wifi dongles into digital broadcast transmitters
- https://bitbucket.org/befi/rpi_wifibroadcast_image_builder - scripts for the automatic creation of wifibroadcast RX and TX images.
- https://github.com/rodizio1/EZ-WifiBroadcast - a radically simple digital data transmission system. A bidirectional data link is established using commercial off-the-shelf hardware like WiFi modules and a pair of Raspberry Pi computers. Coupled with special software this unique system allowes transmission of low latency HD video, telemetry and control data between endpoints. In comparison to a classical wireless connection Ez-WifiBroadcast tries to imitate the famous properties of an analog link like graceful signal degradation and no association between the endpoints.EZ-WifiBroadcast system is based on Befinitiv's Wifibroadcast project but since then has signicantly evolved and matured thanks to the active support from open source community members.
- https://github.com/OpenHD/Open.HD - This project uses ordinary Wi-Fi in a way that replicates the good characteristics of analog radio. We are transmitting and receiving HD video, telemetry, audio, and control data all in one solution. Our primary user group is FPV UAV users. As such the display/receiver side also includes a very full featured OSD. This is also augmented by an optional android app that connects to the system and facilitates settings changes.
- https://github.com/svpcom/wifibroadcast - Transmitter and receiver of UDP packets using raw WiFi radio
- Long-distance Video Streaming · PX4 Developer Guide - This page shows how to set up a companion computer with a camera (Logitech C920 or RaspberryPi camera) such that the video stream is transferred from the UAV to a ground computer and displayed in QGroundControl. The mechanism also provide a bidirectional telemetry link (i.e. like SiK radio). This setup uses WiFi in unconnected (broadcast) mode and software from the Wifibroadcast project.
Downloading
youtube-dl
youtube-dl --list-formats https://www.youtube.com/watch?v=9D05ej8u-gU # see formats/quality available for audio and video
youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 "https://www.youtube.com/watch?v=zr5-50ZEQs4" # save video to mp3
- https://mpv.io/manual/stable/#options-ytdl-format - play something via youtube-dl in mpv
mpv --vid=no "https://www.youtube.com/watch?v=bkxP1TLvegE" --ytdl-format="worst" # use mpv, discard video, use lowest bitrate audio, for streaming live events
- https://github.com/JannikHv/gydl - Gydl (Graphical Youtube-dl) is a GUI wrapper around the already existing youtube-dl program. It's developed with a dialog driven experience in mind. This provides a quick and easy video or audio downloads without disturbances.
- https://github.com/deepjyoti30/ytmdl - A simple script to get songs from youtube in mp3 format with all tags from itunes
you-get
- https://github.com/soimort/you-get - a tiny command-line utility to download media contents (videos, audios, images) from the Web, in case there is no other handy way to do it.
avideo
- https://notabug.org/GPast/avideo - a powerful, 100% libre video and audio downloader for GNU/Linux. With your freedom and privacy a #\1 priority, avideo offers you peace of mind in watching everything from world news and documentaries to the latest cat videos.
SoundScrape
bandcamp_downloader
- https://github.com/sentriz/bandcamp_downloader - a python 3+ script for downloading, renaming, and tagging albums from Bandcamp. You must supply the script an artist and an album name. These must be exactly how you see them in the album url, i.e., http://artist.bandcamp.com/album/album_name/
bandcamp-dl
- https://github.com/iheanyi/bandcamp-dl - Simple python script to download Bandcamp albums
DeezLoader
SMLoadr
- SMLoadr - A streaming music downloader.
nuclear
- nuclear music player - There's no need to use services that limit your freedom and seek to exploit you just to listen to your favourite artists. Nuclear empowers you to listen to what you want, where you want, and how you want, for free.
audio-scraper
- https://github.com/carlthome/audio-scraper - Scrape audio from YouTube and SoundCloud with a simple command-line interface.
Playback
- Streamlink - a command-line utility that pipes video streams from various services into a video player, such as VLC. The main purpose of Streamlink is to allow the user to avoid buggy and CPU heavy flash plugins but still be able to enjoy various streamed content. There is also an API available for developers who want access to the video stream data. This project was forked from Livestreamer, which is no longer maintained.
- Livestreamer - a command-line utility that pipes video streams from various services into a video player, such as VLC. The main purpose of Livestreamer is to allow the user to avoid buggy and CPU heavy flash plugins but still be able to enjoy various streamed content. There is also an API available for developers who want access to the video stream data.
- https://github.com/Atraci/Atraci - a streaming application for Windows, Mac and Linux that lets you listen instantly to more than 60 million songs (way more than iTunes's 26 million). It requires no sign up, displays no ads and is 100% safe.
- https://github.com/freetuxtv/freetuxtv - FreetuxTV is a WebTV player working on the Linux platform based on GTK+ and LibVLC.