SimpleScreenRecorder Broadcast gaming to twitch

featured_howto_simple_screen_recorder_linux There are various GUI software packages out there for Linux users in order to capture their desktop so they can create a screencast of how to complete a particular task in Linux or to create a video showing how to get past a certain level in a game like gtkrecordmydesktop, istanbul, and kazam, but when I attempted to use any of those I would always have issues with synchronization of the video and audio. Either it would be out of sync from the start or it would start to become out of sync over time. Also none of those packages allowed me to livestream the action in realtime (as close to real time as you can get). I came across a package called SimpleScreenRecorder.

The README.md file within the source files contain all the information you’ll need to build and install it for your Linux Distribution except for Ubuntu 13.10, it’s missing 1 library so we’ll walk through those steps together right now. These steps are for a 64bit architecture so if you’re running a 32bit version of Ubuntu 13.10 than your steps may vary slightly but I believe Maartin has accounted for both 32bit and 64bit in his build and compile script so don’t give up now.

Let’s get started, in Ubuntu 13.10 64bit you can open the terminal by holding the alt key and pressing F2 which will bring up the dash, then simple type in terminal and then click on gnome-terminal to open that application. First we need to install the dependencies.

sudo apt-get install git build-essential cmake pkg-config qt4-qmake libqt4-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev libasound2-dev libpulse-dev libjack-jackd2-dev libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxext-dev libxfixes-dev g++-multilib libxext6:i386 libglu1-mesa:i386 libxfixes3:i386

[one_half last=”no”]Get from git
Let’s first make sure you’re in your /home- directory. The cd $HOME command should get you there, just type in cd and hit enter in the terminal and then you can check by typing in pwd and hitting enter. It should show /home/youusernamehere. Now we need to get the code from his GIT project[/one_half][one_half last=”yes”]

git clone https://github.com/MaartenBaert/ssr.git

[/one_half][one_half last=”no”]Git checkout
Now let’s switch to his glinject-next branch with has the improvements to the code and the ability to set the keyframe interval as required by Twitch and Hitbox. First we’ll need to cd into the newly created ssr folder (run the next 2 commands separately, 1 line per command)[/one_half][one_half last=”yes”]

cd ssr
git checkout glinject-next

[/one_half][one_half last=”no”]Run install script
Now we can run the simple-build-and-install script from the ssr folder.[/one_half][one_half last=”yes”]

./simple-build-and-install

[/one_half]Linking 32bit libs
If you receive the error than the 32bit libraries are not linked correctly for a 64bit system and we need to create some symlinks but it depends on what type of graphics drivers you’re running on your system. If you’re running open source drivers (intel, radeon, or nouveau) than you need to create the following symlinks. [one_half last=”no”]First cd into the appropriate directory and then create the 2 symlinks (run the next commands separately, 1 line per command)[/one_half][one_half last=”yes”]

cd /usr/lib/i386-linux-gnu
sudo ln -s libGL.so.1 mesa/libGL.so
sudo ln -s mesa/libGL.so libGL.so

[/one_half]Graphics drivers
When using proprietary graphics drivers (fglrx or nvidia) than you need to create some additional symlinks which you can find out about by reading the SSR source README.me file. It’s located within the ssr folder that you cloned from GIT.[one_half last=”no”]For all drivers we need to create these additional 4 symlinks. You should still be within the /usr/lib/i386-linux-gnu/ directory when you create these 4 (run the next 5 commands separately, 1 line per command) *NOTE* Ensure you scroll inside the code box to see all required symlinks required.[/one_half][one_half last=”yes”]

sudo ln -s libGLU.so.1 libGLU.so
sudo ln -s libX11.so.6 libX11.so
sudo ln -s libXext.so.6 libXext.so
sudo ln -s libXfixes.so.3 libXfixes.so
sudo ldconfig

[/one_half][one_half last=”no”]Build install
We can now cd back into the SSR directory so that we can run the simple-build-and-install script again now that we have properly linked to the 32bit libraries (run the next 2 commands separetly, 1 line per command)[/one_half][one_half last=”yes”]

cd ~/ssr
./simple-build-and-install

[/one_half]That should have successfully run and you should see the ending lines that appear like the following

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/vm1/ssr/build32/glinject’
make[1]: Leaving directory `/home/vm1/ssr/build32/glinject’
Making install in scripts
make[1]: Entering directory `/home/vm1/ssr/build32/scripts’
make[2]: Entering directory `/home/vm1/ssr/build32/scripts’
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/vm1/ssr/build32/scripts’
make[1]: Leaving directory `/home/vm1/ssr/build32/scripts’
Making install in src
make[1]: Entering directory `/home/vm1/ssr/build32/src’
make[2]: Entering directory `/home/vm1/ssr/build32/src’
make[2]: Leaving directory `/home/vm1/ssr/build32/src’
make[1]: Leaving directory `/home/vm1/ssr/build32/src’
make[1]: Entering directory `/home/vm1/ssr/build32′
make[2]: Entering directory `/home/vm1/ssr/build32′
make[2]: Nothing to be done for `install-exec-am’.
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/vm1/ssr/build32′
make[1]: Leaving directory `/home/vm1/ssr/build32′
Running post-install script …
Done.

.

Additional packages
You’ve just successfully compiled and installed SimpleScreenRecorder from GIT using the glinject-next branch. You won’t be able to use SSR and encode (capture) using h264, aac, or mp3 yet though. For those to be applicable as a choice when you choose your encoding settings within SSR you’ll need to install the ubuntu-restricted-extras package. You would just type in the following command into the terminal. It may prompt you to accept the installation of the packages by having to type in a “y”, meaning Yes. It may also prompt you again for accepting the user license for true type fonts, mp3 and aac codec’s, you would merely hit tab so that “ok” highlights and then hit enter.

sudo apt-get install ubuntu-restricted-extras

*NOTE*If you’re running Kubuntu, Lubuntu or Xubuntu, be sure you install it’s applicable restricted-extras pacakge ie: xubuntu-restricted-extras. This was only to show you how to install SimpleScreenRecorder. I may do a follow up on how to use it properly but Maartin already has a lot of great information on his website.

Streaming services

You can also stream to websites like twitch.tv and livestream.com if you know the RTMP URL.

  • Set the container to ‘flv’.
  • Put the RTMP URL in the ‘save as’ field in SimpleScreenRecorder.
  • Uncheck ‘separate file per segment’
  • Set the video codec to libx264 (not H.264, that one won’t allow you to change the bit rate).
  • Set the bit rate to a reasonable value, for example 2000 kbps. The value should be significantly lower than the upload speed of your internet connection, otherwise it will not work well.
  • In the custom video codec options field, enter preset=fast,tune=zerolatency,minrate=2000,maxrate=2000,bufsize=2000,keyint=60.
    The number should be equal to the bit rate. For more information about custom codec options, read this.
  • Set the audio codec to AAC.

twitch.tv

You can get a list of RTMP servers here (based on this). Pick one that’s near you. After picking a server, you should go here, log in, and press the button to get a stream key. You then have to append this to the RTMP URL. Example:

rtmp://live-ams.twitch.tv/app/live_AgPUV1rXJnKm4Qg8

livestream.com

I haven’t tested this, but this forum thread says that it’s possible. The URL is:

rtmp://publish.livestream.com/mogulus/YOURCHANNELNAME/username=YOURUSERNAME/password=YOURPASSWORD/isAutoLive=true

The bandwidth is limited to 500kbps though (that's video and audio combined).

 

simplescreen_recorder_screenshot2

 Ubu Logo (White).2

Ubu the Tech Guru