TheSamsai / Castawesome

A GUI wrapper for FFmpeg and avconv for Livestreaming
GNU General Public License v3.0
49 stars 3 forks source link
            Castawesome, Lifeless Planet Software

Short introduction: Castawesome is GUI wrapper around a script, that is used to stream video from Linux desktop to Twitch.tv, Hitbox.tv or YouTube streaming sites. It can be used, for example, for live screencasts or live gaming screencasts.

The script (and thus also Castawesome) is built around tool called
"avconv", which is one of the tools Libav developers provide.
Both Libav and Castawesome are free/libre open source software
licensed under GPL and LGPL.

Background story: I have been Linux user for few years now and I have grown to like it a lot. But during these years I have noticed that few things have been missing that I would want to have, mainly games and game-related software.

One thing I was really missing, was a program that could stream
live video from my screen, so that others could watch me play,
code or whatever I was doing at the moment.

The revelation became, when I found a script that could grab video
from my x11 session and then send that to the famous Twitch.tv or
Justin.tv websites. I was thrilled of the possibilities this little 
script could provide.

I would have been happy using only that piece of Bash, but then
I started to think what the legendary "Average Joe" would think
about modifying some strange .sh file and decided to write a GUI
wrapper around it. That wrapper became Castawesome.

Installation and usage: I have tried to make installing and using Castawesome as easy as possible, but due to my lack of knowledge in application programming there are few "hacks" that need to be done before the program may be used. The steps necessary to get Castawesome working are here:

1.  Download the tar.gz package of Castawesome and extract it into
    a folder on your system.
2.  Verify that you have installed Python 2, GTK-3 libraries and
    libav-tools/ffmpeg. (Dependencies are listed in DEPENDS file)
3.  Run "make" in the folder you extracted Castawesome files into,
    to verify you have all the necessary GTK libraries installed.
    If the test is succesful, you will see "Castawesome is ok" in the
    terminal.
4.  You can now install Castawesome system-wide with the command
    "sudo make install" or leave it to the current folder.
5.  Run Castawesome by either double-clicking the "castawesome.py"
    file or by running "castawesome" in terminal to create config
    files for your user.
6.  Retrieve your stream key from http://www.justin.tv/broadcast/adv_other
    or http://www.twitch.tv/broadcast and input it when Castawesome 
    asks for it. The stream key will be used to authenticate your 
    stream to the Twitch.tv/Justin.tv servers. 
    (We do not steal your stream key!)
7.  You should modify your streaming settings now, because the default
    values might not work for you.

    More detailed descriptions of the settings are here:

    Input Resolution: 
        Resolution of the screen or area of screen you want to stream.
    Output Resolution:
        Resolution of the stream your viewers will see.
        Higher output resolution allows your viewers to see more
        details and increases the overall quality of the stream, but
        consumes more processing power and network bandwidth.
    Frames Per Second:
        How many frames you want to send per second.
        Keep in mind that higher frame rates will consume more
        processing power and network bandwidth.
    Compression:
        A compression preset. Faster options will compress the stream
        less, making delays shorter and using less processing power,
        but make the stream look worse. Slower presets increase the
        delay and the CPU usage but make the video quality less blurry.
    Bitrate:
        More specific setting for the stream quality. Higher
        bitrate makes the stream in less blurry, but also consumes
        more bandwidth.
    Threads:
        This is the number of threads you will use to encode the
        video. Using more threads encodes the video faster, but
        uses more processing power. This setting should not be
        higher than the amount of cores your CPU has.
    Show Capture Region:
        If this setting is on, it will draw a rectangle around the
        area you are currently capturing. This helps to position and
        resize windows to fit the stream. The setting can be either
        1 (on) or 0 (off).
    Enable Watermarking:
        Enables a transparent image overlay, that will be shown in
        the stream. CAUTION: Watermarking requires more processing
        power than streams without it. Your stream may have more
        frequent framedrops and lower framerates.
    Watermark:
        Allows you to pick a PNG image to be used as your watermark.
        CAUTION: The resolution of the watermark must be less than
        or equal to the output resolution of your stream!
    Enable Webcam:
        Enables the webcam overlay. By default it will be placed to
        the top left corner. You will need a V4L2 compatible
        webcam to use this.
    Configure Webcam:
        Opens the webcam configuration window, which allows you to
        configure the placement and resolution of the webcam overlay.
        The overlay can be placed to any side of the screen or
        even to the middle of the screen if necessary.
    Reset Stream Key:
        Allows you to change the stream key.
    Service Selector:
        Service selector is a drop-down menu on the bottom of the
        settings dialog that allows you to switch between multiple
        livestream providers (Twitch.tv, Hitbox.tv and YouTube).
        You can also select "Local File", which will pipe the
        video to the current directory, or "Custom" which allows
        you to use an "unsupported" video service.
        REMEMBER: You will have to re-enter your stream key every 
        time you change your service.
    Custom Service:
        Here you can configure Castawesome to work with a service
        that is not officially supported by Castawesome ie. a
        service that isn't found on the Service Selector.
        To use this, select "Custom" on the Service Selector and
        input the RTMP URL to the Custom Service dialog.

8.  Click the toggle button to start the stream.

Now you have installed and configured Castawesome. Your settings
will be saved, so that next time you only need to toggle the stream
on.

Bug reports, comments, patches? For any and all feedback, send message to lifelessplanetsoftware@gmail.com