Search My Blog

Tuesday, January 5, 2016

Open Broadcaster Software for Video Recording and Live Streaming

I've been trying out Open Broadcaster Software for Video Recording and Live Streaming, on YouTube. I've Previously tried out, Xsplit and Wirecast for YouTube Live Steaming Software for Windows. These are Streaming Video Apps for YouTube and other Sites (links below). I first tried to use, Wirecast. But, I could never get it to Authenticate on YouTube. And after 3 days of Reading How To's and Searching for Help Online. I discovered Xsplit. So, I gave up on Wirecast. Both Apps, are Freeware - Shareware Type Windows Software. And they re Feature Limited. Unless you Pay a Subscription Fee. I have been running Linux OS's since 2005, as my main Operating Systems. So, Open Source is my preferred type of Software, by far. I only use Windows Apps. If there are no alternatives, that will run Linux. So, I'm very interested in Open Broadcaster. It will run on Linux, Window and Mac. And it is Free and Open Source Software.

Xsplit worked pretty well for me. After a bit of reading and watching some How To Videos, on their Site. I was able to get up in running. Streaming Live to YouTube, within a couple of hours. But, I had allot of trouble. With my Audio and Video, getting out of Sync. I have a fairly fast Internet Connection. At 60Gbps Download and 4Mbps upload. Of course, when Streaming anything, to the Internet. Your Upload Speed, is what matters most. I spent allot of time adjusting the Bandwidth usage. By, trying different Video Resolutions. Dropping down the Resolution and dropping down the Audio Bit Rate. One thing at a time. To see it this would correct the problems. The best results, I ever got, was, at too low of a Video Resolution. To make good Desktop Live Stream Videos. The text on the Pages was too fuzzy - blurry to read well. Which was what I wanted to do. I would like to be able to make Live Software How To Desktop Videos. And I wanted a small WebCam Shot in the Corner too. This proves to be highly intensive use and very demanding on Hardware and Bandwidth. Also, I never got past, 10 to 15 minutes. Without, the Audio and Video, getting out of Sync. This is crucial, for Making Desktop Videos. So, I gave up after making 17 Test Videos. Here is my Playlist, of all of my Xsplit Tests, Don Bishop Testing YouTube Live Streaming using XSplit App. There are allot of factors, in play. When Streaming Audio and Video, to the internet. So, it's hard to figure out, exactly what is going wrong. Your, Upload Bandwidth, Server Load at the Receiving End. Your Hardware ability to Process and Encode the Audio and Video, fast enough for a Live Feed. It typically takes 30 minutes to an hour to Encode 15 to 30 minutes of Audio and Video, to and .mp4 file, on my Systems. I have several Computers and Laptops. Ranging, from P4 - 2.4GHz, to Intel Core 2 Duos, with 1.8 to 2GHz Processors. Some have 2gig and some have 3gig of Ram. And they all Process Desktop Video Recordings, in about the same about of time. So, I think having a more Powerful Computer, would help in Live Streaming, quite a bit. But, I have used a used a 6 Core AMD with 8gig of Ram. That I built for someone. I made about 25 Desktop Instructional Videos, for them. And the Rendering time, was not a whole lot different. I would say, it was about 10 minutes faster on a 30 minute to 1 Hour Video. So, I need a 4GHz, 8 Core AMD System. I've been saving up and I hope to get one soon...

Now, back to Open Broadcaster. I have been Testing Open Broadcaster, for Live Streaming to YouTube, for the last several Days. And I did 5 Test Videos, Previously, as well. Here are my Playlists, Don Bishop OBS Studio Test YouTube Live Videos. And the new Tests are here, Installing Fedora 23 Server with Mate Graphic (GUI) Desktop. I like the layout and the fact the all of the Features, work. With no restrictions. I was able to set it up and get it Streaming to YouTube. Fairly quickly, after a bit of reading on their site and watching their quick How To Video. But, the same Problems with my Audio and Video, quickly getting out of Sync remain. Although, in a couple of my Tests. The Audio and Video stayed fairly well in Sync, over an hour long video. Still, the Test Video Results was not Consistent. Some of my Desktop Videos get so far out of Sync. That, they are unusable. Unless I were to spend allot of time Editing them to get, at least some of of the Scenes Synced. So that, what I am talking about, is being shown in the Video. Open Broadcaster, does work my Computer pretty hard. It stays between 30% and 60% CPU usage, the entire time. I have Open Broadcaster running, on my Core 2 Intel Laptop, with 3gig of Ram. I'm running Open Broadcaster, in Windows 7, at present. Which uses more of the System Resources. Than my favorite Linux Distro, Fedora Linux. I'm going to try out Open Broadcaster, in Fedora Linux soon. As soon, as I get my systems upgraded to Fedora 23. The Fedora Linux installation, requires a newer OS, than mine. Then I'll see, if I get better Results...

Don

What is OBS?

Open Broadcaster Software is free and open source software for video recording and live streaming. Supported features include:

  • Encoding using H264 (x264) and AAC.
  • Support for Intel Quick Sync Video (QSV) and NVENC.
  • Unlimited number of scenes and sources.
  • Live RTMP streaming to Twitch, YouTube, DailyMotion, Hitbox and more.
  • File output to MP4 or FLV.
  • GPU-based game capture for high performance game streaming.
  • DirectShow capture device support (webcams, capture cards, etc).
  • Windows 8 high speed monitor capture support.
  • Bilinear or lanczos3 resampling.

What is OBS MultiPlatform?

OBS MultiPlatform is a complete rewrite of the original OBS from the ground up, with the main goals of course being multiplatform support, a more thorough feature set, and a much more powerful API. A very early and simple release is currently available for Mac.

OBS MultiPlatform will eventually support many of the advanced requested features not present in the original OBS, such as multiple stream outputs and scene previewing. It does not have these features in this release.

How much does it cost?

OBS is completely free! Not a dime! There are no subscriptions, no payments at all. OBS is available to everyone, with source code publicly available on github for anyone to help contribute.

While OBS will always remain free, you are welcome to donate to support our development efforts.

Plugins

OBS has an API allowing developers to create their own unique plugins, giving them and others complete control of their streaming experience. Some popular plugins include:

...and many more!

Go there...
https://obsproject.com/


Open Broadcaster Software

Free, open source software for live streaming and recording

Select Operating System

  • Windows
  • OSX
  • Linux

Select Version

  • Original
  • Multiplatform

OBS Multiplatform is a complete rewrite of the original OBS from the ground up, with the main goals being of course multiplatform support, a more thorough feature set and a much more powerful API.

Source code available on GitHub

Latest Linux Releases

OBS Multiplatform is available as a package for several Linux distributions, and can be compiled from source.

Please select your distribution below:

If you would like to maintain a package for your distribution, please join the development IRC at #obs-dev on Quakenet and discuss it with the developers.

Go there...
https://obsproject.com/download#linux



Build From Source - Install Instructions

Allon Murienik edited this page · 50 revisions
Clone this wiki locally

If you want to develop for OBS, please visit #obs-dev on Quakenet and get to know the devs or have questions answered!

Also, if there is something in this guide you want to change/improve on, it is recommended that you talk about it with the devs in IRC first.


Table of Contents:


Windows:

  • Clone the repository and submodules:

     git clone --recursive https://github.com/jp9000/obs-studio.git  
  • NOTE: OBS on windows currently requires VS2013 with the latest update, as obs-studio uses both C99 and C++11. Express might not be supported at this time (though if not, then it'll be fixed it at some point). You can always just get VS2013 Community Edition for free.

  • Download (or build) development packages of FFmpeg, x264, Qt5, cURL. Pre-built windows dependencies (excluding Qt) for VS2013 can be found here: http://code.fosshub.com/OBS/downloads

  • Download windows version of cmake from: http://www.cmake.org/

  • The following variables must be used to specify dependencies, these variables can either be specified via a windows environment variable, or through a cmake variable (optionally suffixed with '32' or '64' to specify architecture):

    • DepsPath (path to the include for all dependencies, not including Qt)
    • FFmpegPath (path to just FFmpeg include directory)
    • x264Path (path to just x264 include directory)
    • curlPath (path to just cURL include directory)
  • NOTE: Search paths and search order for base dependency library/binary files, relative to their include directories:

    Library files

    • ../lib
    • ../lib32 (if 32bit)
    • ../lib64 (if 64bit)
    • ./lib
    • ./lib32 (if 32bit)
    • ./lib64 (if 64bit)

    Binary files:

    • ../bin
    • ../bin32 (if 32bit)
    • ../bin64 (if 64bit)
    • ./bin
    • ./bin32 (if 32bit)
    • ./bin64 (if 64bit)
  • If you're building the GUI, the following cmake or windows environment variable must be used separately from the other dependencies to specify Qt5's location. Like the other environment variables, append 32 or 64 if you wish to build both architectures:

    QTDIR (path to Qt build base directory)

  • NOTE: The GUI builds by default. If you don't want to build the GUI, add a cmake boolean variable DISABLE_UI, set to true.

  • NOTE: An example Qt directory you would use here if you installed Qt5 to D:\Qt would usually look something like this:

    (32bit) D:\Qt\5.3\msvc2013
    (64bit) D:\Qt\5.3\msvc2013_64

  • Run cmake-gui. In "where is the source code", enter in the repo directory (example: D:/obs). In "where to build the binaries", enter the repo directory path with the 'build' subdirectory (example: D:/obs/build).

  • NOTE: You should create one or more of the following subdirectories within the repository for building: release, debug, and build (suffixed with or without 32/64 to specify architecture). They are excluded from the repo in .gitignore for the sake of building, so they are safe to create an use within the repository base directory.

  • Press 'Configure', then enable the COPY_DEPENDENCIES option, then press 'Configure' again, and then press 'Generate' to generate visual studio project files in the 'build' subdirectory.

  • Open obs-studio.sln from the 'build' subdirectory, and it should run and be good to go. All required dependencies should be copied on compile and it should be a fully fuctional build environment. The output is built in the 'rundir/[build type]' directory of your 'build' subdirectory.


Mac OSX

  • Clone the repository and submodules:

     git clone --recursive https://github.com/jp9000/obs-studio.git  
  • Use macports or homebrew and install FFmpeg, x264, Qt5, and cmake.

  • NOTE: Qt5 can also be downloaded/installed via the Qt website, though keep in mind that you will have to set the QTDIR environment variable to the Qt5 build base directory.

  • Make sure to have the OSX 10.9 or newer SDK installed (comes with recent versions of Xcode)

  • In a terminal, go to the obs-studio directory create a 'build' sub directory and change to it, then to build, type:

    on OSX 10.9 or newer:

    cmake .. && make  

    on OSX 10.8:

    MACOSX_DEPLOYMENT_TARGET=10.8 cmake -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/ .. && make  
  • It builds in a modular structure by default. To run it via terminal, go to build/rundir/RelWithDebInfo/bin, then type ./obs to run.

  • NOTE: If you are running via command prompt, you must be in the 'bin' directory specified above, otherwise it will not be able to find its files relative to the binary.

  • To create an app bundle instead, use the command: make package. This will create a .dmg file with an app bundle inside.


Linux

NOTE: OpenGL 3.2 or later is required to use OBS Multiplatform on Linux. You can check what version of OpenGL is supported by your system by typing the following into the terminal:

  • glxinfo | grep "OpenGL"

Ubuntu 14.04 LTS/15.04 installation

  • FFmpeg is required. If you do not have the FFmpeg installed (if you're not sure, then you probably don't have it), you can get it with the following commands:

    For Ubuntu 14.04 LTS:

    sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next  sudo apt-get update && sudo apt-get install ffmpeg  

    For Ubuntu 15.04:

    sudo apt-get install ffmpeg  
  • Then you can install OBS with the following commands:

    sudo add-apt-repository ppa:obsproject/obs-studio  sudo apt-get update && sudo apt-get install obs-studio  

Arch Linux installation, unofficial


Fedora installation, unofficial


openSUSE installation, unofficial


Gentoo installation, unofficial


NixOS installation

nix-env -i obs-studio  

See https://nixos.org/wiki/OBS for further instructions


Manually compiling on Red Hat based distros such as Fedora

  • Get RPM fusion at http://rpmfusion.org/Configuration/

  • Set up a build environment (substitute yum with dnf on Fedora 22 and up):

    sudo yum install gcc gcc-c++ gcc-objc cmake git  
  • If you don't care much about FFmpeg features, just get it from RPM fusion:

    sudo yum install ffmpeg-devel  
  • Get the required packages:

    sudo yum install libX11-devel libGL-devel libv4l-devel \          pulseaudio-libs-devel x264-devel freetype-devel \          fontconfig-devel libXcomposite-devel libXinerama-devel \          qt5-qtbase-devel qt5-qtx11extras-devel libcurl-devel \          systemd-devel  
  • Building and installing OBS:

    git clone https://github.com/jp9000/obs-studio.git  cd obs-studio  mkdir build && cd build  cmake -DUNIX_STRUCTURE=1 ..  make -j4  sudo make install  

Manually compiling on Debian-based distros

  • Set up a build environment:

    sudo apt-get install build-essential pkg-config cmake git checkinstall  
  • Get the required packages:

    sudo apt-get install libx11-dev libgl1-mesa-dev libpulse-dev libxcomposite-dev \          libxinerama-dev libv4l-dev libudev-dev libfreetype6-dev \          libfontconfig-dev qtbase5-dev libqt5x11extras5-dev libx264-dev \          libxcb-xinerama0-dev libxcb-shm0-dev libjack-jackd2-dev libcurl4-openssl-dev  
  • FFmpeg is required, and not commonly available on debian-based distros. If you want a custom compilation with FDK AAC encoder and such, see:

    https://trac.ffmpeg.org/wiki/CompilationGuide  
  • Otherwise, I will only give easy and brief instructions for a very minimal FFmpeg installation (note that it does not require the inclusion of packages such as x264/etc, but you can include them if you wish):

    sudo apt-get install zlib1g-dev yasm  git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git  cd ffmpeg  ./configure --enable-shared --prefix=/usr  make -j4  sudo checkinstall --pkgname=FFmpeg --fstrans=no --backup=no \          --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes  
  • Alternatively, Debian Jessie non-free, and Ubuntu 14.04 LTS multiverse have packages for FDK AAC. Add non-free (Debian) or multiverse (Ubuntu) to your /etc/apt/sources.list. Tested on Debian Stretch:

    sudo apt-get install libavcodec-dev libavfilter-dev libavdevice-dev libfdk-aac-dev  
  • Building and installing OBS:

    git clone https://github.com/jp9000/obs-studio.git  cd obs-studio  mkdir build && cd build  cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..  make -j4  sudo checkinstall --pkgname=obs-studio --fstrans=no --backup=no \         --pkgversion="$(date +%Y%m%d)-git" --deldoc=yes  

Manually compiling on openSUSE

  • See openSUSE installation instructions (above) for details on adding Packman repository.

  • Install build dependencies:

    sudo zypper in cmake \    fontconfig-devel \    freetype2-devel \    gcc \    gcc-c++ \    libcurl-devel \    libffmpeg-devel \    libjansson-devel \    libpulse-devel \    libqt5-qtbase-devel \    libqt5-qtx11extras-devel \    libudev-devel \    libv4l-devel \    libXcomposite-devel \    libXinerama-devel \    libXrandr-devel  
  • Building and installing OBS:

    git clone https://github.com/jp9000/obs-studio.git  cd obs-studio  mkdir build && cd build  cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..  make -j4  sudo make install  

Linux portable mode

  • You can also build in portable mode on Linux, which installs all the files to an isolated directory:

    mkdir build && cd build  cmake -DUNIX_STRUCTURE=0 \          -DCMAKE_INSTALL_PREFIX="${HOME}/obs-studio-portable" ..  make -j4 && make install  

    After that you should have a portable install in ~/obs-studio-portable Change to bin/64bit or bin/32bit and then simply run: ./obs

Go there...
https://github.com/jp9000/obs-studio/wiki/Install-Instructions#linux


Open Broadcaster Software OBS Studio


Open Broadcaster Software - Browse Files at SourceForge.net
Open Broadcaster Software download | SourceForge.net
Open Broadcaster Software / Code / [a529e6]
Open Broadcaster Software - Index
Open Broadcaster Software - Download
Install Instructions · jp9000/obs-studio Wiki · GitHub
Simple scene switcher | Open Broadcaster Software
Video source plugin | Open Broadcaster Software
CLR Browser Source Plugin | Open Broadcaster Software

Xsplit.com Live Video Streaming App for YouTube and other Sites
Download XSplit Broadcaster and XSplit Gamecaster - Free version available
TriDef SmartCam for XSplit | TriDef
XSplit Forum - XSplit Broadcaster
XSplit Forum - XSplit Broadcaster 2.3 Beta (Version 2.3.1504.3003)

Wirecast for YouTube Live Steaming Software for Windows
Wirecast Play | Telestream


No comments: