All Projects → mvarhola → comfy-channel

mvarhola / comfy-channel

Licence: other
A 24/7 live video broadcast with automatic content selection and overlays using FFMPEG and Python!

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
HTML
75241 projects

Projects that are alternatives of or similar to comfy-channel

obplayer
📻 OBPlayer Streaming Automation Playout with CAP EAS Alerting
Stars: ✭ 93 (+151.35%)
Mutual labels:  tv, live, playout
mock-hls-server
Fake a live/event HLS stream from a VOD one. Useful for testing. Supports looping.
Stars: ✭ 61 (+64.86%)
Mutual labels:  playlist, stream, live
SFMediaStream
HTML5 media streamer library for playing music, video, playlist, or even live streaming microphone & camera with node server
Stars: ✭ 97 (+162.16%)
Mutual labels:  playlist, stream, live
Rapidbay
Self-hosted torrent video streaming service compatible with Chromecast and AppleTV deployable in the cloud
Stars: ✭ 163 (+340.54%)
Mutual labels:  stream, tv
Mediathekviewweb
Eine Weboberfläche als Alternative zum Java-Client
Stars: ✭ 543 (+1367.57%)
Mutual labels:  stream, tv
Bilibili Live Recorder
下载 bilibili 直播 视频流
Stars: ✭ 52 (+40.54%)
Mutual labels:  stream, live
k8s-openresty-streaming
Full-fledged media streaming server with OpenResty and rtmp module
Stars: ✭ 37 (+0%)
Mutual labels:  stream, nginx-rtmp
Streamly
Portable, independent, web-based, simple streaming YouTube video queues and playlists for music videos, audiobooks, etc.
Stars: ✭ 60 (+62.16%)
Mutual labels:  playlist, stream
ustvgo to m3u
Grabs m3u links from ustvgo.tv
Stars: ✭ 35 (-5.41%)
Mutual labels:  playlist, live
ghichep-StreamingVideo
Ghi chép về Livestream sử dụng Opensource - Xây dựng một máy chủ Livestream theo cách đơn giản nhất - NGINX RTMP Dockerfile
Stars: ✭ 40 (+8.11%)
Mutual labels:  stream, nginx-rtmp
Audioplayer
Audio Player for Nextcloud and ownCloud
Stars: ✭ 179 (+383.78%)
Mutual labels:  playlist, stream
Pyinstalive
Python script to download Instagram livestreams and replays.
Stars: ✭ 336 (+808.11%)
Mutual labels:  stream, live
Legalstream
An m3u8 playlist featuring many LEGALLY FREE IPTV streams. For use with VLC.
Stars: ✭ 299 (+708.11%)
Mutual labels:  stream, tv
Desktoplivestreaming
DesktopLiveStreaming
Stars: ✭ 138 (+272.97%)
Mutual labels:  stream, live
Odio
odio is now Strimio!
Stars: ✭ 262 (+608.11%)
Mutual labels:  stream, tv
Iptv
Collection of publicly available IPTV channels from all over the world
Stars: ✭ 45,053 (+121664.86%)
Mutual labels:  playlist, tv
Diffy
🎞️💓🍿 Love streaming - It's always best to watch a movie together ! 🤗
Stars: ✭ 37 (+0%)
Mutual labels:  stream, live
Huong-dan-cai-dat-stream-server-va-chuyen-doi-video-sang-streaming
Hướng dẫn cài đặt stream server và chuyển đổi video thường sang dạng TS Streaming
Stars: ✭ 29 (-21.62%)
Mutual labels:  stream, nginx-rtmp
Freeiptv
FreeIPTV • Watch Free IPTV World Wide
Stars: ✭ 68 (+83.78%)
Mutual labels:  playlist, stream
bigscreen-player
Simplified media playback for bigscreen devices
Stars: ✭ 62 (+67.57%)
Mutual labels:  tv, live

Comfy Channel

Comfy Channel is a 24/7 live video broadcast with automatic content selection and overlays using FFMPEG and Python!

Comfy Channel

This repository comes with some example content and configurations that can be used to set up Comfy Channel.

How to run

Perform the steps outlined in Requirements first!!!

The main program is ComfyChannel.py. The following is an example command:

src/ComfyChannel.py -o "rtmp://localhost/live/stream"

The full list of arguments is as follows:

usage: ComfyChannel.py [-h] [-l] [-o OUTPUT] [-ua UPNEXT_AUDIO_FILE]
                       [-uv UPNEXT_VIDEO_FILE] [-uw UPNEXT_WISDOM_FILE]
                       [-f FONT_FILE] [-p PLAYOUT_FILE]

optional arguments:
  -h, --help            show this help message and exit
  -1, --once            run playout only once
  -o OUTPUT, --output OUTPUT
                        output location (stream url)
  -ua UPNEXT_AUDIO_FILE, --upnext_audio_file UPNEXT_AUDIO_FILE
                        folder for upnext audio files
  -uv UPNEXT_VIDEO_FILE, --upnext_video_file UPNEXT_VIDEO_FILE
                        folder for upnext video files
  -uw UPNEXT_WISDOM_FILE, --upnext_wisdom_file UPNEXT_WISDOM_FILE
                        file for wisdom text
  -f FONT_FILE, --font_file FONT_FILE
                        font file for overlay text
  -p PLAYOUT_FILE, --playout_file PLAYOUT_FILE
                        config file for playout

Docker images

To make things easier, I have created two Docker images for quickly setting up Comfy Channel. Visit the following repositories for instruction on setting up the images:

mvarhola/comfy-channel: https://github.com/mvarhola/comfy-channel-docker

mvarhola/nginx-rtmp: https://hub.docker.com/r/mvarhola/nginx-rtmp/

Requirements

Comfy Channel requires FFMPEG to be compiled with libfreetype and libfdk_aac, which are not included in most distributed ffmpeg packages.

For Mac OS Homebrew users, install homebrew-ffmpeg, which will have the required libraries. To install ffmpeg with all available libraries, run the following command:

brew options ffmpeg

brew install ffmpeg \
--with-chromaprint \
--with-fdk-aac \
--with-fontconfig \
--with-freetype \
--with-frei0r \
--with-game-music-emu \
--with-libass \
--with-libbluray \
--with-libbs2b \
--with-libcaca \
--with-libgsm \
--with-libmodplug \
--with-libsoxr \
--with-libssh \
--with-libvidstab \
--with-libvorbis \
--with-libvpx \
--with-opencore-amr \
--with-openh264 \
--with-openjpeg \
--with-openssl \
--with-opus \
--with-rtmpdump \
--with-rubberband \
--with-sdl2 \
--with-snappy \
--with-speex \
--with-tesseract \
--with-theora \
--with-tools \
--with-two-lame \
--with-wavpack \
--with-webp \
--with-x265 \
--with-xz \
--with-zeromq \
--with-zimg

There are also modules that need to be installed by Python. To do so, run the follwing command:

pip install -r src/requirements.txt

The pymediainfo requires you have the package mediainfo installed on your machine (which it is not by default on Ubuntu 18).

Adding your own files

playout.ini contains the order of blocks that will be played by Comfy Channel. A block is a section of content that will be played from a single folder.

[Block1]
name = "Test Block 1"
folder = videos
files = 2
bump_chance = 0.2

A Block contains the block name, the folder location for the files, the number of files to play, and the chance that a bump will be played after each file.

To add a new block, copy and paste one of the example sections and change the name, folder, files, and bump_chance.

Terminology

Playout: a sequence of blocks that Comfy Channel will play in order. The sequence is defined in playout.ini

Block: a section of content that will be played from a single folder.

Bump: a short video selected from the bumps folder that can include a brief announcement. For examples, check out [bumpworthy].

Upnext: a auto-generated video that gets played in between each block. Shows the upcoming videos, what time they will be played, and a short wisdom text. The video and audio files of the upnext can be different.

Wisdom: Comfy Channel will pick a random line from the wisdom file to insert into the upnext.

Inspiration

My main goal for Comfy Channel was to have the little clock in the top left corner like you see on Japanese TV

Included media

Videos: Various videos that I recorded

Font: HC Maru Gothic font

Upnext audio files from: Delroy Edwards - SLOWED DOWN FUNK

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].