Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Linux: Powerful Server Administration

You're reading from   Linux: Powerful Server Administration Recipes for CentOS 7, RHEL 7, and Ubuntu Server Administration

Arrow left icon
Product type Course
Published in Apr 2017
Publisher Packt
ISBN-13 9781788293778
Length 995 pages
Edition 1st Edition
Tools
Arrow right icon
Authors (4):
Arrow left icon
Uday Sawant Uday Sawant
Author Profile Icon Uday Sawant
Uday Sawant
William Leemans William Leemans
Author Profile Icon William Leemans
William Leemans
Jonathan Hobson Jonathan Hobson
Author Profile Icon Jonathan Hobson
Jonathan Hobson
Oliver Pelz Oliver Pelz
Author Profile Icon Oliver Pelz
Oliver Pelz
Arrow right icon
View More author details
Toc

Chapter 9. Streaming with Ampache

In this chapter, we will cover the following recipes:

  • Installing the Ampache server
  • Uploading contents and creating catalogs
  • Setting on-the-fly transcoding
  • Enabling API access for remote streaming
  • Streaming music with Ampache

Introduction

This chapter covers the installation and configuration of the open source audio and video streaming service, Ampache. It is a web-based streaming application that allows you to upload your own audio/video contents and access them across multiple Internet-enabled devices. You can easily set up your home media server using Ampache and your old personal computer running Ubuntu. We will focus on installing Ampache on the Ubuntu server, but you can install Ampache on any Linux distribution of your choice.

Installing the Ampache server

This recipe covers the installation of the Ampache server. It is a simple PHP-based web application. Once installed and set up, you can use a web interface to play your audio/video files or use any of the various popular streaming clients to stream content over the intranet or even the Internet.

Getting ready

We will be using Ubuntu Server 16.04, but you can choose to have any version of Ubuntu.

Additionally, we will need the Samba server. It will be used as shared network storage.

As always, access to a root account or an account with sudo privileges will be required.

How to do it…

Ampache is a web application developed in PHP. We will start the installation with the LAMP stack. This recipe covers installation with the Apache web server, but you can choose any other web server:

  1. Install the LAMP stack if it's not already installed:
    $ sudo apt-get update
    $ sudo apt-get install apache2 mysql-server-5.5 php7 \
    php7-mysql php7-curl libapache2-mod-php7
    

    Note

    For more details on Apache and PHP installation, check Chapter 3, Working with Web Server

  2. Next, download the latest Ampache server source code. Ampache is a PHP application:
    $ wget https://github.com/ampache/ampache/archive/3.8.0.tar.gz
    Extract achieve contents under a web root directory
    $ tar -xf 3.8.0.tar.gz -C /var/www
    $ mv /var/www/ampache-3.8.0 /var/www/ampache
    
  3. We also need to create some configuration files. You can use the default configuration that ships with the Ampache setup and rename the existing files:
    $ cd /var/www/ampache
    $ mv rest/.htaccess.dist rest/.htaccess
    $ mv play/.htaccess.dist play/.htaccess
    $ mv channel/.htaccess.dist channel/.htaccess
    
  4. The Ampache web setup will save the configuration under the config directory. It will need write access to that directory:
    $ chmod 777 -R config
    
  5. Next, we need to configure the Apache web server, enable mod_rewrite, and set a virtual host pointing to the Ampache directory.
  6. Enable mod_rewrite with the following command:
    $ sudo a2enmod rewrite
    
  7. Create a new virtual host configuration:
    $ cd /etc/apache2/sites-available/
    $ sudo vi ampache.conf
    
  8. Add the following lines to ampache.conf:
    <VirtualHost *:80>
        DocumentRoot /var/www/ampache
          <Directory /var/www/ampache/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/error.log
      LogLevel warn
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  9. Now, disable any default configuration that is using port 80, or alternatively you can use a port other than 80 for Ampache installation.
  10. Reload the Apache server for the changes to take effect:
    $ sudo service apache2 reload
    

    Here, we have installed and configured the base setup. Now, we can move on to configuration through a web-based installer. You can access the web installer at the domain name or IP address of your server. The installer should greet you with a big Ampache logo and a language selection box; something similar to the following:

    How to do it…
  11. Select the language of your choice and click the Start configuration button.
  12. On the next page, Ampache will check all the requirements and show you a list of settings that need to be fixed. These are mostly the configuration changes and file permissions.
  13. Most of these requirements should already be marked with a green OK button. You need to fix things that are marked in red. The requirements screen will look as follows:
    How to do it…
  14. Click the Continue button when you are done reviewing all the requirements.
  15. On the next page, you need to configure the MySQL settings. Fill in the necessary details and select Create Database User to create a new Ampache user under the MySQL server:
    How to do it…
  16. Click Insert Database to configure database settings.
  17. The next screen will confirm the database settings and write the configuration changes to a file under the config directory. You can choose to change the installation type and enable transcoding configuration from this screen. Once done, click the Continue button to write the configuration file. If you see any errors, scroll to the bottom of the page and click the write button to write config changes.
  18. Finally, the web setup will ask for admin account credentials for the Ampache server. The Create Admin Account form will be shown with Username and Password fields, as follows. Set the admin account username and password and click the Create Account button:
    How to do it…
  19. Once the account is created, the Ampache installation script will redirect you to the web player screen. If it shows a login screen, use the admin account credentials created in the last step to log in. The landing page of the web player will be rendered as follows:
    How to do it…

You have completed the Ampache setup process. Now you need to upload content and enjoy your own streaming server. We will learn to create a catalog and upload content in the next recipe.

How it works…

Ampache is a web application written in PHP. We have downloaded the latest Ampache code and set it to work with our web server using Virtual Host configuration. Ampache provides sample htaccess files that set required redirection rules. We have enabled respective rules by renaming the sample files. If you are using a web server other than Apache, make sure you check the Ampache documentation for your web server. It supports Nginx and lighttpd as web servers.

Ampache has made it easy to cross-check all requirements and configure your database connection using the web installer. The installer checks for the required PHP settings and extensions and returns a simple page with things that need to fixed. Next, we can configure database settings and push schema directly from the web installer.

Once everything is configured, the web installer returns the login page, from where you can access the Ampache server.

There's more…

The Ampache community have created a Docker image for the Ampache server. If you have a Docker system set up, you can quickly get started with Ampache with its Docker image.

You can get the Dockerfile at https://github.com/ampache/ampache-docker.

Ampache is also available in the Ubuntu package repository and can be installed with the following single command:

$ sudo apt-get install ampache mysql-server-5.5

The currently available version of Ampache is 3.6. If you don't care about the latest and greatest updates, you can use the Ubuntu repository for quick and easy installation.

See also

Getting ready

We will be using Ubuntu Server 16.04, but you can choose to have any version of Ubuntu.

Additionally, we will need the Samba server. It will be used as shared network storage.

As always, access to a root account or an account with sudo privileges will be required.

How to do it…

Ampache is a web application developed in PHP. We will start the installation with the LAMP stack. This recipe covers installation with the Apache web server, but you can choose any other web server:

  1. Install the LAMP stack if it's not already installed:
    $ sudo apt-get update
    $ sudo apt-get install apache2 mysql-server-5.5 php7 \
    php7-mysql php7-curl libapache2-mod-php7
    

    Note

    For more details on Apache and PHP installation, check Chapter 3, Working with Web Server

  2. Next, download the latest Ampache server source code. Ampache is a PHP application:
    $ wget https://github.com/ampache/ampache/archive/3.8.0.tar.gz
    Extract achieve contents under a web root directory
    $ tar -xf 3.8.0.tar.gz -C /var/www
    $ mv /var/www/ampache-3.8.0 /var/www/ampache
    
  3. We also need to create some configuration files. You can use the default configuration that ships with the Ampache setup and rename the existing files:
    $ cd /var/www/ampache
    $ mv rest/.htaccess.dist rest/.htaccess
    $ mv play/.htaccess.dist play/.htaccess
    $ mv channel/.htaccess.dist channel/.htaccess
    
  4. The Ampache web setup will save the configuration under the config directory. It will need write access to that directory:
    $ chmod 777 -R config
    
  5. Next, we need to configure the Apache web server, enable mod_rewrite, and set a virtual host pointing to the Ampache directory.
  6. Enable mod_rewrite with the following command:
    $ sudo a2enmod rewrite
    
  7. Create a new virtual host configuration:
    $ cd /etc/apache2/sites-available/
    $ sudo vi ampache.conf
    
  8. Add the following lines to ampache.conf:
    <VirtualHost *:80>
        DocumentRoot /var/www/ampache
          <Directory /var/www/ampache/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/error.log
      LogLevel warn
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  9. Now, disable any default configuration that is using port 80, or alternatively you can use a port other than 80 for Ampache installation.
  10. Reload the Apache server for the changes to take effect:
    $ sudo service apache2 reload
    

    Here, we have installed and configured the base setup. Now, we can move on to configuration through a web-based installer. You can access the web installer at the domain name or IP address of your server. The installer should greet you with a big Ampache logo and a language selection box; something similar to the following:

    How to do it…
  11. Select the language of your choice and click the Start configuration button.
  12. On the next page, Ampache will check all the requirements and show you a list of settings that need to be fixed. These are mostly the configuration changes and file permissions.
  13. Most of these requirements should already be marked with a green OK button. You need to fix things that are marked in red. The requirements screen will look as follows:
    How to do it…
  14. Click the Continue button when you are done reviewing all the requirements.
  15. On the next page, you need to configure the MySQL settings. Fill in the necessary details and select Create Database User to create a new Ampache user under the MySQL server:
    How to do it…
  16. Click Insert Database to configure database settings.
  17. The next screen will confirm the database settings and write the configuration changes to a file under the config directory. You can choose to change the installation type and enable transcoding configuration from this screen. Once done, click the Continue button to write the configuration file. If you see any errors, scroll to the bottom of the page and click the write button to write config changes.
  18. Finally, the web setup will ask for admin account credentials for the Ampache server. The Create Admin Account form will be shown with Username and Password fields, as follows. Set the admin account username and password and click the Create Account button:
    How to do it…
  19. Once the account is created, the Ampache installation script will redirect you to the web player screen. If it shows a login screen, use the admin account credentials created in the last step to log in. The landing page of the web player will be rendered as follows:
    How to do it…

You have completed the Ampache setup process. Now you need to upload content and enjoy your own streaming server. We will learn to create a catalog and upload content in the next recipe.

How it works…

Ampache is a web application written in PHP. We have downloaded the latest Ampache code and set it to work with our web server using Virtual Host configuration. Ampache provides sample htaccess files that set required redirection rules. We have enabled respective rules by renaming the sample files. If you are using a web server other than Apache, make sure you check the Ampache documentation for your web server. It supports Nginx and lighttpd as web servers.

Ampache has made it easy to cross-check all requirements and configure your database connection using the web installer. The installer checks for the required PHP settings and extensions and returns a simple page with things that need to fixed. Next, we can configure database settings and push schema directly from the web installer.

Once everything is configured, the web installer returns the login page, from where you can access the Ampache server.

There's more…

The Ampache community have created a Docker image for the Ampache server. If you have a Docker system set up, you can quickly get started with Ampache with its Docker image.

You can get the Dockerfile at https://github.com/ampache/ampache-docker.

Ampache is also available in the Ubuntu package repository and can be installed with the following single command:

$ sudo apt-get install ampache mysql-server-5.5

The currently available version of Ampache is 3.6. If you don't care about the latest and greatest updates, you can use the Ubuntu repository for quick and easy installation.

See also

How to do it…

Ampache is a web application developed in PHP. We will start the installation with the LAMP stack. This recipe covers installation with the Apache web server, but you can choose any other web server:

  1. Install the LAMP stack if it's not already installed:
    $ sudo apt-get update
    $ sudo apt-get install apache2 mysql-server-5.5 php7 \
    php7-mysql php7-curl libapache2-mod-php7
    

    Note

    For more details on Apache and PHP installation, check Chapter 3, Working with Web Server

  2. Next, download the latest Ampache server source code. Ampache is a PHP application:
    $ wget https://github.com/ampache/ampache/archive/3.8.0.tar.gz
    Extract achieve contents under a web root directory
    $ tar -xf 3.8.0.tar.gz -C /var/www
    $ mv /var/www/ampache-3.8.0 /var/www/ampache
    
  3. We also need to create some configuration files. You can use the default configuration that ships with the Ampache setup and rename the existing files:
    $ cd /var/www/ampache
    $ mv rest/.htaccess.dist rest/.htaccess
    $ mv play/.htaccess.dist play/.htaccess
    $ mv channel/.htaccess.dist channel/.htaccess
    
  4. The Ampache web setup will save the configuration under the config directory. It will need write access to that directory:
    $ chmod 777 -R config
    
  5. Next, we need to configure the Apache web server, enable mod_rewrite, and set a virtual host pointing to the Ampache directory.
  6. Enable mod_rewrite with the following command:
    $ sudo a2enmod rewrite
    
  7. Create a new virtual host configuration:
    $ cd /etc/apache2/sites-available/
    $ sudo vi ampache.conf
    
  8. Add the following lines to ampache.conf:
    <VirtualHost *:80>
        DocumentRoot /var/www/ampache
          <Directory /var/www/ampache/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/error.log
      LogLevel warn
      CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  9. Now, disable any default configuration that is using port 80, or alternatively you can use a port other than 80 for Ampache installation.
  10. Reload the Apache server for the changes to take effect:
    $ sudo service apache2 reload
    

    Here, we have installed and configured the base setup. Now, we can move on to configuration through a web-based installer. You can access the web installer at the domain name or IP address of your server. The installer should greet you with a big Ampache logo and a language selection box; something similar to the following:

    How to do it…
  11. Select the language of your choice and click the Start configuration button.
  12. On the next page, Ampache will check all the requirements and show you a list of settings that need to be fixed. These are mostly the configuration changes and file permissions.
  13. Most of these requirements should already be marked with a green OK button. You need to fix things that are marked in red. The requirements screen will look as follows:
    How to do it…
  14. Click the Continue button when you are done reviewing all the requirements.
  15. On the next page, you need to configure the MySQL settings. Fill in the necessary details and select Create Database User to create a new Ampache user under the MySQL server:
    How to do it…
  16. Click Insert Database to configure database settings.
  17. The next screen will confirm the database settings and write the configuration changes to a file under the config directory. You can choose to change the installation type and enable transcoding configuration from this screen. Once done, click the Continue button to write the configuration file. If you see any errors, scroll to the bottom of the page and click the write button to write config changes.
  18. Finally, the web setup will ask for admin account credentials for the Ampache server. The Create Admin Account form will be shown with Username and Password fields, as follows. Set the admin account username and password and click the Create Account button:
    How to do it…
  19. Once the account is created, the Ampache installation script will redirect you to the web player screen. If it shows a login screen, use the admin account credentials created in the last step to log in. The landing page of the web player will be rendered as follows:
    How to do it…

You have completed the Ampache setup process. Now you need to upload content and enjoy your own streaming server. We will learn to create a catalog and upload content in the next recipe.

How it works…

Ampache is a web application written in PHP. We have downloaded the latest Ampache code and set it to work with our web server using Virtual Host configuration. Ampache provides sample htaccess files that set required redirection rules. We have enabled respective rules by renaming the sample files. If you are using a web server other than Apache, make sure you check the Ampache documentation for your web server. It supports Nginx and lighttpd as web servers.

Ampache has made it easy to cross-check all requirements and configure your database connection using the web installer. The installer checks for the required PHP settings and extensions and returns a simple page with things that need to fixed. Next, we can configure database settings and push schema directly from the web installer.

Once everything is configured, the web installer returns the login page, from where you can access the Ampache server.

There's more…

The Ampache community have created a Docker image for the Ampache server. If you have a Docker system set up, you can quickly get started with Ampache with its Docker image.

You can get the Dockerfile at https://github.com/ampache/ampache-docker.

Ampache is also available in the Ubuntu package repository and can be installed with the following single command:

$ sudo apt-get install ampache mysql-server-5.5

The currently available version of Ampache is 3.6. If you don't care about the latest and greatest updates, you can use the Ubuntu repository for quick and easy installation.

See also

How it works…

Ampache is a web application written in PHP. We have downloaded the latest Ampache code and set it to work with our web server using Virtual Host configuration. Ampache provides sample htaccess files that set required redirection rules. We have enabled respective rules by renaming the sample files. If you are using a web server other than Apache, make sure you check the Ampache documentation for your web server. It supports Nginx and lighttpd as web servers.

Ampache has made it easy to cross-check all requirements and configure your database connection using the web installer. The installer checks for the required PHP settings and extensions and returns a simple page with things that need to fixed. Next, we can configure database settings and push schema directly from the web installer.

Once everything is configured, the web installer returns the login page, from where you can access the Ampache server.

There's more…

The Ampache community have created a Docker image for the Ampache server. If you have a Docker system set up, you can quickly get started with Ampache with its Docker image.

You can get the Dockerfile at https://github.com/ampache/ampache-docker.

Ampache is also available in the Ubuntu package repository and can be installed with the following single command:

$ sudo apt-get install ampache mysql-server-5.5

The currently available version of Ampache is 3.6. If you don't care about the latest and greatest updates, you can use the Ubuntu repository for quick and easy installation.

See also

There's more…

The Ampache community have created a Docker image for the Ampache server. If you have a Docker system set up, you can quickly get started with Ampache with its Docker image.

You can get the Dockerfile at https://github.com/ampache/ampache-docker.

Ampache is also available in the Ubuntu package repository and can be installed with the following single command:

$ sudo apt-get install ampache mysql-server-5.5

The currently available version of Ampache is 3.6. If you don't care about the latest and greatest updates, you can use the Ubuntu repository for quick and easy installation.

See also

See also

Uploading contents and creating catalogs

So, we have installed the Ampache streaming server. Now, we will learn how to upload our audio/video content and create our first catalog.

Getting ready

You will need audio and video files to be uploaded on your server and enough space to save all this content. I will be using podcasts from Ubuntu podcasts in the MP3 format.

Upload all content to your Ampache server and note the directory path. I will be using the podcasts directory under home for my user.

Open the Ampache server homepage and log in with admin credentials.

How to do it…

Ampache provides the admin page, where you can perform all administrative tasks, such as catalogue management, user management, and other configurations. We will create a new catalogue from the admin panel and then point it to already uploaded content:

  1. From your Ampache homepage, click on the admin icon in the upper-left corner of the screen. This should list all administrative tools:
    How to do it…
  2. Now, click on the Add a Catalog link. This should load the Add a Catalog page:
    How to do it…
  3. Enter the catalog name. Use a name that describes your content. I will use Ubuntu podcasts.
  4. Set the Catalog Type to local, as we will be loading content from your local filesystem.
  5. Enter the path for your MP3 (or video) files, /home/ubuntu/podcasts in my case.
  6. Click on the Add Catalog button. This will create a new catalog and import all content to it. The process will check for meta tags and try to collect more information about the content. It will take some time to process all the files and add details to the Ampache database:
    How to do it…
  7. Finally, click Continue to complete catalog creation and go to the catalog list:
    How to do it…
  8. Once catalog creation is complete, you can go to the homepage by clicking the home icon (first) in the upper-left of the screen and then clicking on the song title link. This should list all the files available under your catalog directory:
    How to do it…
  9. From this song list, you can play songs/podcasts, add or remove ratings, add them to playlists, and more:
    How to do it…

How it works…

Catalog creation simply reads the content from the upload directory and adds the respective details to the MySQL database. The process tries to gather more details about content using information collected from meta tags and track titles or file names. This information is then used to group the content by artist and album. Note that Ampache is not tagging software where you upload random content and receive a well-organized media library. For Ampache to work well, you need to have properly tagged and well-organized content.

Getting ready

You will need audio and video files to be uploaded on your server and enough space to save all this content. I will be using podcasts from Ubuntu podcasts in the MP3 format.

Upload all content to your Ampache server and note the directory path. I will be using the podcasts directory under home for my user.

Open the Ampache server homepage and log in with admin credentials.

How to do it…

Ampache provides the admin page, where you can perform all administrative tasks, such as catalogue management, user management, and other configurations. We will create a new catalogue from the admin panel and then point it to already uploaded content:

  1. From your Ampache homepage, click on the admin icon in the upper-left corner of the screen. This should list all administrative tools:
    How to do it…
  2. Now, click on the Add a Catalog link. This should load the Add a Catalog page:
    How to do it…
  3. Enter the catalog name. Use a name that describes your content. I will use Ubuntu podcasts.
  4. Set the Catalog Type to local, as we will be loading content from your local filesystem.
  5. Enter the path for your MP3 (or video) files, /home/ubuntu/podcasts in my case.
  6. Click on the Add Catalog button. This will create a new catalog and import all content to it. The process will check for meta tags and try to collect more information about the content. It will take some time to process all the files and add details to the Ampache database:
    How to do it…
  7. Finally, click Continue to complete catalog creation and go to the catalog list:
    How to do it…
  8. Once catalog creation is complete, you can go to the homepage by clicking the home icon (first) in the upper-left of the screen and then clicking on the song title link. This should list all the files available under your catalog directory:
    How to do it…
  9. From this song list, you can play songs/podcasts, add or remove ratings, add them to playlists, and more:
    How to do it…

How it works…

Catalog creation simply reads the content from the upload directory and adds the respective details to the MySQL database. The process tries to gather more details about content using information collected from meta tags and track titles or file names. This information is then used to group the content by artist and album. Note that Ampache is not tagging software where you upload random content and receive a well-organized media library. For Ampache to work well, you need to have properly tagged and well-organized content.

How to do it…

Ampache provides the admin page, where you can perform all administrative tasks, such as catalogue management, user management, and other configurations. We will create a new catalogue from the admin panel and then point it to already uploaded content:

  1. From your Ampache homepage, click on the admin icon in the upper-left corner of the screen. This should list all administrative tools:
    How to do it…
  2. Now, click on the Add a Catalog link. This should load the Add a Catalog page:
    How to do it…
  3. Enter the catalog name. Use a name that describes your content. I will use Ubuntu podcasts.
  4. Set the Catalog Type to local, as we will be loading content from your local filesystem.
  5. Enter the path for your MP3 (or video) files, /home/ubuntu/podcasts in my case.
  6. Click on the Add Catalog button. This will create a new catalog and import all content to it. The process will check for meta tags and try to collect more information about the content. It will take some time to process all the files and add details to the Ampache database:
    How to do it…
  7. Finally, click Continue to complete catalog creation and go to the catalog list:
    How to do it…
  8. Once catalog creation is complete, you can go to the homepage by clicking the home icon (first) in the upper-left of the screen and then clicking on the song title link. This should list all the files available under your catalog directory:
    How to do it…
  9. From this song list, you can play songs/podcasts, add or remove ratings, add them to playlists, and more:
    How to do it…

How it works…

Catalog creation simply reads the content from the upload directory and adds the respective details to the MySQL database. The process tries to gather more details about content using information collected from meta tags and track titles or file names. This information is then used to group the content by artist and album. Note that Ampache is not tagging software where you upload random content and receive a well-organized media library. For Ampache to work well, you need to have properly tagged and well-organized content.

How it works…

Catalog creation simply reads the content from the upload directory and adds the respective details to the MySQL database. The process tries to gather more details about content using information collected from meta tags and track titles or file names. This information is then used to group the content by artist and album. Note that Ampache is not tagging software where you upload random content and receive a well-organized media library. For Ampache to work well, you need to have properly tagged and well-organized content.

Setting on-the-fly transcoding

Transcoding means converting media from one format to another. Suppose your music files are in a format different to MP3 and your media player only understands MP3 format. In that case, you need to convert your music files to MP3. This conversion task is done by transcoder programs. There are various transcoding programs available, such as ffmpeg and avconv. These programs need codec before they can convert media from source format to destination format. We need to separately install and configure these components.

Ampache supports on-the-fly transcoding of media files. That is, your music that is not in an MP3 format can be converted into the MP3 format just before it is delivered to your music player, and your high definition video content can be optimized for mobile consumption to reduce bandwidth use.

In this recipe, we will learn how to install and configure transcoding programs with Ampache.

Getting ready

Make sure you have working a setup of the Ampache server.

You will need access to a root account or an account with root privileges.

How to do it…

Ampache depends on external libraries for transcoding to work. We will first install the dependencies and then configure Ampache to work with them:

  1. First, add the ffmpeg PPA to the Ubuntu installation sources:
    $ sudo apt-add-repository ppa:mc3man/trusty-media
    $ sudo apt-get update
    
  2. Now, install ffmpeg and other required codecs:
    $ sudo apt-get install flac mp3splt lame faad ffmpeg vorbis-tools
    
  3. Next, we need to configure Ampache and enable transcoding. Open the configuration file located at /var/www/ampache/config/ampache.cfg.php, find the following lines in the file, and uncomment them:
    max_bit_rate = 576
    min_bit_rate = 48
    transcode_flac = required
    transcode_mp3 = allowed
    encode_target = mp3
    transcode_cmd = "ffmpeg"

    Here, we have set ffmpeg for the encoding/decoding of media files. You can choose any encoder of your choice. Change the value of transcode_cmd respectively.

  4. Next, enable debug mode to get details of the transcoding. Find the debug section in the configuration file and set it as follows:
    debug = true
    Enable log file path which is, by default, set to null
    log_path = "/var/log/ampache"
  5. Save the changes to the configuration file and reload the Apache web server:
    $ sudo service apache2 reload
    

Now your transcoding setup should be working. You should be able to upload media in a different format and play it as MP3 or other respective formats.

It often happens that we have content in a format that is not supported by the device we are using for playback. Maybe the device does not have the required codec or the hardware is not capable of playing a high bit rate. We may even need to convert content to a lower bit rate and reduce the bandwidth used to stream. The transcoding feature of Ampache helps us to cover these scenarios.

With transcoding, you can convert the content to the desired device-supported format before actually starting the streaming. This is called on-the-fly transcoding. The contents are encoded in a new format as and when needed. Once the conversion is completed, the new format can be cached for repeat use. In the above example, we set Ampache to convert FLAC files to MP3 using the ffmpeg tool. Now whenever we request a file that is originally available in the FLAC format, Ampache will convert it to MP3 before streaming it to our device.

Ampache uses external, well-established media conversion tools for transcoding. Any tool that works with the Ubuntu command line can be configured to work with Ampache. Refer to the Ampache configuration file to get more details and configuration examples.

Getting ready

Make sure you have working a setup of the Ampache server.

You will need access to a root account or an account with root privileges.

How to do it…

Ampache depends on external libraries for transcoding to work. We will first install the dependencies and then configure Ampache to work with them:

  1. First, add the ffmpeg PPA to the Ubuntu installation sources:
    $ sudo apt-add-repository ppa:mc3man/trusty-media
    $ sudo apt-get update
    
  2. Now, install ffmpeg and other required codecs:
    $ sudo apt-get install flac mp3splt lame faad ffmpeg vorbis-tools
    
  3. Next, we need to configure Ampache and enable transcoding. Open the configuration file located at /var/www/ampache/config/ampache.cfg.php, find the following lines in the file, and uncomment them:
    max_bit_rate = 576
    min_bit_rate = 48
    transcode_flac = required
    transcode_mp3 = allowed
    encode_target = mp3
    transcode_cmd = "ffmpeg"

    Here, we have set ffmpeg for the encoding/decoding of media files. You can choose any encoder of your choice. Change the value of transcode_cmd respectively.

  4. Next, enable debug mode to get details of the transcoding. Find the debug section in the configuration file and set it as follows:
    debug = true
    Enable log file path which is, by default, set to null
    log_path = "/var/log/ampache"
  5. Save the changes to the configuration file and reload the Apache web server:
    $ sudo service apache2 reload
    

Now your transcoding setup should be working. You should be able to upload media in a different format and play it as MP3 or other respective formats.

It often happens that we have content in a format that is not supported by the device we are using for playback. Maybe the device does not have the required codec or the hardware is not capable of playing a high bit rate. We may even need to convert content to a lower bit rate and reduce the bandwidth used to stream. The transcoding feature of Ampache helps us to cover these scenarios.

With transcoding, you can convert the content to the desired device-supported format before actually starting the streaming. This is called on-the-fly transcoding. The contents are encoded in a new format as and when needed. Once the conversion is completed, the new format can be cached for repeat use. In the above example, we set Ampache to convert FLAC files to MP3 using the ffmpeg tool. Now whenever we request a file that is originally available in the FLAC format, Ampache will convert it to MP3 before streaming it to our device.

Ampache uses external, well-established media conversion tools for transcoding. Any tool that works with the Ubuntu command line can be configured to work with Ampache. Refer to the Ampache configuration file to get more details and configuration examples.

How to do it…

Ampache depends on external libraries for transcoding to work. We will first install the dependencies and then configure Ampache to work with them:

  1. First, add the ffmpeg PPA to the Ubuntu installation sources:
    $ sudo apt-add-repository ppa:mc3man/trusty-media
    $ sudo apt-get update
    
  2. Now, install ffmpeg and other required codecs:
    $ sudo apt-get install flac mp3splt lame faad ffmpeg vorbis-tools
    
  3. Next, we need to configure Ampache and enable transcoding. Open the configuration file located at /var/www/ampache/config/ampache.cfg.php, find the following lines in the file, and uncomment them:
    max_bit_rate = 576
    min_bit_rate = 48
    transcode_flac = required
    transcode_mp3 = allowed
    encode_target = mp3
    transcode_cmd = "ffmpeg"

    Here, we have set ffmpeg for the encoding/decoding of media files. You can choose any encoder of your choice. Change the value of transcode_cmd respectively.

  4. Next, enable debug mode to get details of the transcoding. Find the debug section in the configuration file and set it as follows:
    debug = true
    Enable log file path which is, by default, set to null
    log_path = "/var/log/ampache"
  5. Save the changes to the configuration file and reload the Apache web server:
    $ sudo service apache2 reload
    

Now your transcoding setup should be working. You should be able to upload media in a different format and play it as MP3 or other respective formats.

It often happens that we have content in a format that is not supported by the device we are using for playback. Maybe the device does not have the required codec or the hardware is not capable of playing a high bit rate. We may even need to convert content to a lower bit rate and reduce the bandwidth used to stream. The transcoding feature of Ampache helps us to cover these scenarios.

With transcoding, you can convert the content to the desired device-supported format before actually starting the streaming. This is called on-the-fly transcoding. The contents are encoded in a new format as and when needed. Once the conversion is completed, the new format can be cached for repeat use. In the above example, we set Ampache to convert FLAC files to MP3 using the ffmpeg tool. Now whenever we request a file that is originally available in the FLAC format, Ampache will convert it to MP3 before streaming it to our device.

Ampache uses external, well-established media conversion tools for transcoding. Any tool that works with the Ubuntu command line can be configured to work with Ampache. Refer to the Ampache configuration file to get more details and configuration examples.

Enabling API access for remote streaming

A streaming client needs to get the details of the media available on the streaming server. The client needs to authenticate with server access the catalog and list of songs and even request offline access to store media locally. With Ampache, we can use its REST and XML APIs. Through these APIs, clients can communicate with Ampache. You can even write your own client tool using any of the supported APIs.

This recipe covers the setup process for streaming content to remote devices. As of writing this, Ampache allows all users to use all available APIs. We will learn how to modify this setting and configure it to limit access based on user accounts.

Getting ready

Open Ampache in your browser and log in with admin credentials.

How to do it…

We will create a separate user account for remote streaming. From the Ampache homepage, click on the admin icon in the top-left corner and then click on the Add User link from the User Tools section. An add user menu will be shown that looks like this:

How to do it…
  1. Fill in the Username, E-mail, and Password fields for the new user account and set User Access to User.
  2. Click the Add User button to create this user and then click Continue.
  3. We will use this new user account to log in from the remote client.
  4. Next, we need to configure access rights and allow this user to use APIs to stream music.
  5. Click on the admin icon and then click on the Add ACL link under the Access Control section.
    How to do it…
  6. Set the name for this access control list.
  7. Set level to Read/Write.
  8. Set the user to the user account created in the previous step.
  9. Set ACL type to Stream Access.
  10. Set the start and end IP addresses to 0.0.0.0 and 255.255.255.255 respectively.
  11. Click Create ACL to save the settings.
  12. Click on the Add ACL link again and repeat the preceding settings, except, for ACL Type that choose API/RPC.
  13. Now you can use Ampache streaming from your mobile client. When asked for your username and password, use our new user account, and for the streaming server URL, use your Ampache FQDN followed by /ampache, for example:

    http://myampachehost.com/ampache

  14. If your client needs an API key, you can generate one from the User Tools section.
  15. Click on the Browse Users link and then select the user account in question. Click the edit icon to update user details and then click on the generate API key icon.
  16. Finally, click the Update User button to save your changes.

How it works…

By default, the Ampache server creates an Access Control List that allows all access to all users. It is a good idea to create a separate user and grant only the required permissions. Here, we have created a new user account with access to the REST API and to stream content. This will allow better control over users and content, as well as allow us to set various user-specific default settings, such as default bitrate and encoding formats.

Getting ready

Open Ampache in your browser and log in with admin credentials.

How to do it…

We will create a separate user account for remote streaming. From the Ampache homepage, click on the admin icon in the top-left corner and then click on the Add User link from the User Tools section. An add user menu will be shown that looks like this:

How to do it…
  1. Fill in the Username, E-mail, and Password fields for the new user account and set User Access to User.
  2. Click the Add User button to create this user and then click Continue.
  3. We will use this new user account to log in from the remote client.
  4. Next, we need to configure access rights and allow this user to use APIs to stream music.
  5. Click on the admin icon and then click on the Add ACL link under the Access Control section.
    How to do it…
  6. Set the name for this access control list.
  7. Set level to Read/Write.
  8. Set the user to the user account created in the previous step.
  9. Set ACL type to Stream Access.
  10. Set the start and end IP addresses to 0.0.0.0 and 255.255.255.255 respectively.
  11. Click Create ACL to save the settings.
  12. Click on the Add ACL link again and repeat the preceding settings, except, for ACL Type that choose API/RPC.
  13. Now you can use Ampache streaming from your mobile client. When asked for your username and password, use our new user account, and for the streaming server URL, use your Ampache FQDN followed by /ampache, for example:

    http://myampachehost.com/ampache

  14. If your client needs an API key, you can generate one from the User Tools section.
  15. Click on the Browse Users link and then select the user account in question. Click the edit icon to update user details and then click on the generate API key icon.
  16. Finally, click the Update User button to save your changes.

How it works…

By default, the Ampache server creates an Access Control List that allows all access to all users. It is a good idea to create a separate user and grant only the required permissions. Here, we have created a new user account with access to the REST API and to stream content. This will allow better control over users and content, as well as allow us to set various user-specific default settings, such as default bitrate and encoding formats.

How to do it…

We will create a separate user account for remote streaming. From the Ampache homepage, click on the admin icon in the top-left corner and then click on the Add User link from the User Tools section. An add user menu will be shown that looks like this:

How to do it…
  1. Fill in the Username, E-mail, and Password fields for the new user account and set User Access to User.
  2. Click the Add User button to create this user and then click Continue.
  3. We will use this new user account to log in from the remote client.
  4. Next, we need to configure access rights and allow this user to use APIs to stream music.
  5. Click on the admin icon and then click on the Add ACL link under the Access Control section.
    How to do it…
  6. Set the name for this access control list.
  7. Set level to Read/Write.
  8. Set the user to the user account created in the previous step.
  9. Set ACL type to Stream Access.
  10. Set the start and end IP addresses to 0.0.0.0 and 255.255.255.255 respectively.
  11. Click Create ACL to save the settings.
  12. Click on the Add ACL link again and repeat the preceding settings, except, for ACL Type that choose API/RPC.
  13. Now you can use Ampache streaming from your mobile client. When asked for your username and password, use our new user account, and for the streaming server URL, use your Ampache FQDN followed by /ampache, for example:

    http://myampachehost.com/ampache

  14. If your client needs an API key, you can generate one from the User Tools section.
  15. Click on the Browse Users link and then select the user account in question. Click the edit icon to update user details and then click on the generate API key icon.
  16. Finally, click the Update User button to save your changes.

How it works…

By default, the Ampache server creates an Access Control List that allows all access to all users. It is a good idea to create a separate user and grant only the required permissions. Here, we have created a new user account with access to the REST API and to stream content. This will allow better control over users and content, as well as allow us to set various user-specific default settings, such as default bitrate and encoding formats.

How it works…

By default, the Ampache server creates an Access Control List that allows all access to all users. It is a good idea to create a separate user and grant only the required permissions. Here, we have created a new user account with access to the REST API and to stream content. This will allow better control over users and content, as well as allow us to set various user-specific default settings, such as default bitrate and encoding formats.

Streaming music with Ampache

We have set up the Ampache server and configured it for streaming. In this recipe, we will learn how to set up an Android client to play content from our Ampache server.

Getting ready

You will need an Android or iOS phone or tablet. We will focus on the configuration of an Android client, but the same configuration should work with an iOS device, and even desktop clients such as VLC.

How to do it…

Follow these steps to stream music with Ampache:

  1. First, install Just Player on your Android device. It is an Ampache client and uses XML APIs to stream content from Ampache. It is available from the Play Store.
  2. Once installed, open the settings of Just Player and search for Ampache under cloud player.
  3. We need to add our Ampache server details here. Enter the server URL as the domain name or IP address of your Ampache server and append /ampache at the end, for example:

    http://myampacheserver.com/ampache

  4. Next, enter the username and password in their respective fields. You can use the user account created in the last recipe.
  5. Click Check to confirm the settings and then save.

Now you should be able to access your Ampache songs on your Android device or phone.

Getting ready

You will need an Android or iOS phone or tablet. We will focus on the configuration of an Android client, but the same configuration should work with an iOS device, and even desktop clients such as VLC.

How to do it…

Follow these steps to stream music with Ampache:

  1. First, install Just Player on your Android device. It is an Ampache client and uses XML APIs to stream content from Ampache. It is available from the Play Store.
  2. Once installed, open the settings of Just Player and search for Ampache under cloud player.
  3. We need to add our Ampache server details here. Enter the server URL as the domain name or IP address of your Ampache server and append /ampache at the end, for example:

    http://myampacheserver.com/ampache

  4. Next, enter the username and password in their respective fields. You can use the user account created in the last recipe.
  5. Click Check to confirm the settings and then save.

Now you should be able to access your Ampache songs on your Android device or phone.

How to do it…

Follow these steps to stream music with Ampache:

  1. First, install Just Player on your Android device. It is an Ampache client and uses XML APIs to stream content from Ampache. It is available from the Play Store.
  2. Once installed, open the settings of Just Player and search for Ampache under cloud player.
  3. We need to add our Ampache server details here. Enter the server URL as the domain name or IP address of your Ampache server and append /ampache at the end, for example:

    http://myampacheserver.com/ampache

  4. Next, enter the username and password in their respective fields. You can use the user account created in the last recipe.
  5. Click Check to confirm the settings and then save.

Now you should be able to access your Ampache songs on your Android device or phone.

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image