These are notes while researching a way to convert a browser/website to a stream. This could be used for Facebook Live or for webrecording.TL'DR:
- I started with Phantomjs - but that didn't support the html5 video tag
- SlimerJS supports it, but there is no way to record audio directly (though this might come from desktop audio)
- So I moved to research ffmpeg/X11/XVFB to record it with linux which works
- But ffmpeg has no easy way to mix streams/overlays to I moved on to OBS with overlay browser support
- I started researching options OBS in docker and it needed best a GPU , so I move to nvidia-docker
- And so came across building game servers on EC2/AWS using GPUs and managed to run OBS inside of GPU g2x.large machine
- I tried streaming to twich , which works great and managed to restream 4K 60FPS youtube on an AWS instance
- Remote control works through OBS-Remote but OBS has kinda limit in types of features
- Xsplit (some JS automation), Wirecast (no automation found, besides keypresses) , Livestream.com (non-scriptable) and found Vmix.com which an API (but costs 799$)
- For Overlaying systems , nodeCG looks nice
- Sending RTMP to FBlive and periscope works fine
- Looked into redundancy for RTMP as FBLive ends the post/stream when the stream ends (options are ffmpeg UDP switch over and zencode RTMP ping)
- For CDN still looking livestream.com vs Cloudfront/Fastly with their HLS setup
- Possibly use restream.io to send it to multiple feeds.
Recent Posts. Stream Xbox One to OSX Make a basic dynamic flash template for CasparCG INTINOR Backpack at DreamHack Winter 2018. If you are doing this setup as an All-In-One which means that the CasparCG Server and CasparCG Client will be running on the same computer then the IP Address of the server you want should be 127.0.0.1. If CasparCG Server is on another computer, then you would need to add that IP Address to the list.
To be continued.
Phantomjs:
- Recording a page with phantomjs & fmpeg - http://mindthecode.com/recording-a-website-with-phantomjs-and-ffmpeg/
- Ffmpeg recording/Docker with - https://hub.docker.com/r/danscan/node-ffmpeg-phantomjs/
- Browse web in VR using Aframe using phantomjs & ffmpeg - https://github.com/cjroth/aframe-phantomjs-continuous-streaming
- Simple gist on recording - https://gist.github.com/phanan/e03f75082e6eb114a35c
- using Render Animated Content from HTML5-Canvas - https://blog.animatron.com/2014/01/22/how-we-render-animated-content-from-html5-canvas/
Slimerjs:
- Recording WebGl apps with slimerjs on EC2/AWS - https://gist.github.com/vizath/7eeab41a42cb0a95f0f4
- Recording slimerjs with ffmpeg & gif /dev/stdout - https://github.com/laurentj/slimerjs/issues/369
XVFB linux recording:
- Docker, ffmpeg and vnc for recording, xvfb https://github.com/fcwu/docker-ubuntu-vnc-desktop/blob/master/Dockerfile
- Using ffmpeg & X11 to grab and stream ustream, hulu, twitch.tv - https://github.com/karlellis/ScreenStudio
- Grabbing XFVB & FFmpeg hulu, netflix etc.., uses selenium to log you in - https://github.com/grayleonard/xvfb-record/blob/master/login.py
Docker/X11/GPU:
- Jessie Frazelle's blog - Docker containers on the desktop - examples on using X11 on OSX to run some X clients like Skype, Chrome etc.. - https://blog.jessfraz.com/post/docker-containers-on-the-desktop/
- Docker for Mac and GUI applications by Frederik Averpil - https://fredrikaverpil.github.io/2016/07/31/docker-for-mac-and-gui-applications/
- Nvidia Docker(gpu) - https://github.com/NVIDIA/nvidia-docker/wiki/Deploy-on-Amazon-EC2
- Setting up Coreos to use GpU - https://github.com/ryanolson/CoreOS-GPU
- Building Nvidia drivers on Coreos Linux - https://github.com/Clarifai/coreos-nvidia
- Simplify building Nvidia drivers on Coroes - http://blog.clarifai.com/how-to-simplify-building-nvidia-gpu-drivers-on-coreos/#.WH4-bLYrLUJ
Setup windows EC2/GPU/OBS:
- Reddit page on 'MFPlat.dll missing' - https://www.reddit.com/r/starcitizen/comments/3wi7is/psa_if_you_get_a_missing_mfreadwritedll_or/
- Solves 'MFPlat.dll is missing' - First need to install Media Services feature before then Adding Media Feature Pack - https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/media-feature-pack-for-windows-10-n-was-removed-by/f593a2ec-d475-44e3-8eb9-cd3f0cbf69fa
- Cloudgaming on EC2 - Nice markdown & screenshot of the setup - https://github.com/PixelPirate/ec2-gaming
- Setup Windows on GPU notes from Daniel Thomas (specific on NV_Modes to support more screenmodes> - https://github.com/DanielThomas/ec2gaming/wiki/First-time-configuration
- Golang VNC Alternative - https://github.com/openai/go-vncdriver
- Cloudformation template to run AWS EC2 gpu Windows - https://serverlesscode.com/examples/2016-05-steam-engine.json
- AWS EC2 gpu Windows - Gaming on a Budget - https://serverlesscode.com/post/gaming-on-a-budget-cloudformation/
- EC2 gpu gaming with Steam in-Home Streaming , no specifics - http://www.51samplecode.com/download/c43a4937p0.html
- Startup time and using EBS , seems to hint you best pre-warm your EBS before playing games - https://www.reddit.com/r/cloudygamer/comments/5a1r9v/startup_time_and_using_ebs/
- Reddit page around cloudygames - https://www.reddit.com/r/cloudygamer/new/
- Powershell automated setup script for AWS Windows GPU setup - https://github.com/lg/cloudy-gamer/blob/master/cloudygamer.psm1
- lg.io Original poster Lang - github repo on AWS EC2 gaming - https://github.com/lg/cloudy-gamer#beta-automated-cloudygamer-provisioning-of-machine
- lg.io Reviewed EC2 - Revised and much faster , run your own high-eng cloud gaming on EC2 - https://lg.io/2015/07/05/revised-and-much-faster-run-your-own-highend-cloud-gaming-service-on-ec2.html
- lg.io Cloudy Gamer - Playing overwatch on Azure's new monster GPU Instances , cheaper & faster than AWS EC2 - https://lg.io/2016/10/12/cloudy-gamer-playing-overwatch-on-azures-new-monster-gpu-instances.html
- Cloudar post on AWS EC2 Gaming - some good hints on Nvidia setup - https://cloudar.be/awsblog/how-to-use-aws-ec2-gpu-instances/
- Some nerdy paper on building an open cloud gaming system - http://gaminganywhere.org/gaming_anywhere.html
- Seems OVH has gpus too - https://www.ovh.com/us/dedicated-servers/gpu/
- Gaming on aws - Another post with screenshots how to setup aws , drivers etc - https://nexus.vert.gg/gaming-on-amazon-s-ec2-83b178f47a34#.79i943ovi
- Soon Nvidia may have their own game cloud - https://techcrunch.com/2017/01/04/nvidias-geforce-now-puts-a-gaming-pc-in-the-cloud/
- AWS EC2 Elastic GPU's on Reddit - https://news.ycombinator.com/item?id=13072478
- AWS Blogpost on Elastic GPU's - https://aws.amazon.com/blogs/aws/in-the-work-amazon-ec2-elastic-gpus/
- AWS Instance types GPU's - http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#optimize_gpu
- New P2 Instance Types on aws - https://aws.amazon.com/blogs/aws/new-p2-instance-type-for-amazon-ec2-up-to-16-gpus/
Setup linux/GPU:
- An ubuntu gpu desktop - https://github.com/rncry/gpu-desktop
- Discussion on CasparCG on AWS ec2 GPU - http://casparcg.com/forum/viewtopic.php?f=3&t=2050
OBS:
- Silent install - https://chocolatey.org/packages/obs-studio/0.15.4
- Run OBS on EC2 Windows instances - https://obsproject.com/forum/threads/how-to-run-obs-studio-on-aws-ec2-windows-2012-r2-instance.44337/
- Running OBS inside of Docker - https://github.com/Spoon4/docker-obs
- Another one running OBS inside docker , hints at using XVFB is possible to run it - https://github.com/danielguerra69/obs-studio/blob/master/Dockerfile
- OBS Lag issues - Use gpu in streaming settings - https://youtu.be/GH8ZZRo91iM
- OBS black window for Chrome - don't forget to disable in Chrome/Advanced/Device accelerations
Controlling OBS from remote:
- NodeCG remote interface using javascript - https://github.com/nodecg/obs-remote-js/blob/master/docs/OBSRemote.md
- OBS-Browser studio browser plugin - seems to handle events , but no changes - https://github.com/kc5nra/obs-browser
- OBS-Websocket - https://github.com/Palakis/obs-websocket
Overlay systems:
- OBS Overlay system - https://github.com/spenibus/obs-overlay-html-js - See blogpost http://spenibus.net/b/p/p/OBS-Overlay-The-illustrated-guide
- Twitch overlay system - http://overlayr.net/
- Twitch overlay - https://twitchoverlay.com
- Stream Pro - https://streampro.io/
- Strexm.tv - https://strexm.tv/
- StormG - https://github.com/caitp/stormg
- NodeCG Dashboard solution gist - https://gist.github.com/Lange/021285daa424578763f7fdc83ba3772a
- NodeCG Awesome demos - https://github.com/nodecg/awesome-nodecg/blob/master/README.md
- NodeCG Docker image - https://github.com/nodecg/nodecg
- Insight into Stream Overlay creation - http://lilchen.com/blog/insight-into-stream-overlay/
- OBS Studio browser plugin github - https://github.com/kc5nra/obs-browser
- NodeCG documentation - http://nodecg.com/
- NodeCG transition bundle - https://github.com/Tam/nodecg-transition
Livestream control:
- Livestream seems to have a studio cloud version and hints at a web control - http://www.lemac.com.au/GeneralNews/LivestreamannouncesnewStudio40andStudioCloudsoftware.aspx
- Livestream web control page - https://studio-webcontrol.livestream.com/
- More explanation on Studio Web Control - https://help.livestream.com/hc/en-us/articles/216286388
Xsplit control:
- Javascript framework for control of xsplit - http://xjsframework.github.io/quickstart.html
Vmix Scripting:
- Vmix Web API - http://www.vmix.com/help17/Scripting.html
CDN:
- Fastly Video caching system - https://docs.fastly.com/guides/about-fastly-services/about-fastlys-video-caching-service
- Livestream studio for incoming rtmp streams - RTMP Server - https://help.livestream.com/hc/en-us/articles/217694678-Setting-Up-Studio-as-an-RTMP-Server
RTMP:
- Docker-Nginx-RTMP - https://github.com/R0GGER/docker/tree/master/obs-streaming
- MistServer - FFmpeg , RTMP, RTSP, WebUI , HTTP - https://github.com/R0GGER/mistserver
- Live failover configuration - Wowza support - 'But you can configure fail-over with Live Stream Repeater:' - https://www.wowza.com/forums/showthread.php?36203-Live-failover-configuration
- Selfhosted Alternative to FB Live using Nginx (record,stream and archive videos on end) - https://aaronparecki.com/2016/11/19/15/self-hosted-facebook-live
- Private RTMP Server using Nginx - https://obsproject.com/forum/resources/how-to-set-up-your-own-private-rtmp-server-using-nginx.50/
- Youtube explaining RTMP - Nginx - https://www.youtube.com/embed/RqzFGeHMdLo
Posted by1 year ago
Archived
Hi All, just need some advice on minimum requirements for building a server for casparCG to do 4K lower third straplines. No media capture or playout. Animated graphics will have to run ar 30 fps to match the switcher framerate.
I'll be using a Blackmagic Decklink 8K Pro with Key/Fill outputs.
Considering a Xeon processor with 40PCI lanes to handle Decklink and GPU together, but is this required?
Any thoughts and suggestions on Motherboard, GPU and memory?
Regards
Mark
20 comments