The exciting roadmap of PeerTube version 3.

Framasoft published a roadmap for version 3 of Peertube and you can contribute.

PeerTube, which is free and open source software, is a much needed decentralized alternative to the behemoth YouTube. In fact thanks to the ActivityPub (AP) protocol PeerTube federates with other AP social networks such as Mastodon.

Sepia, Peertube’s mascot

Framasoft the non-profit organisation behind PeerTube (and other free software) has started a fundraiser for version 3 of PeerTube. They published a roadmap accompanied by a progressive fundraiser over a period of 6 month. The current roadmap looks very promising and is divided into four main steps. Each of these steps can be fulfilled if a specific financial target has been reached. New features and improvements are among others: global search through the Fediverse, moderation improvements and features, playlists and finally live streaming.

Global search within PeerTube is a much needed feature to enable the user to find videos that are outside the instance-bubble. The PeerTube instance that I’m using (linuxrocks) only federates with a couple of other instances making it difficult for my videos to be found while I can’t find much when searching for content.

Moderation. An online video sharing platform isn’t without problems like copyright violations or not safe for work material. PeerTube already has some moderation tools like a report tool but more tools certainly won’t hurt and the roadmap show a long list of new moderation tools.

Playlists. e.g allow clips of the same video in a playlist thus making this a remix tool.

Live streaming is already big and according to market research it will grow rapidly in the coming years. For PeerTube to keep up this is therefore a necessary feature.

At the moment of this writing over half of the required amount of funds and two of the four main steps in the roadmap has been reached but Framasoft will surely appreciate more donations to be able to fulfil the complete roadmap. So either contribute financially or at least share the news!

DeGoogle my life

According to Wikipedia to DeGoogle is the act of removing Google from your life. As the growing market share of the internet giant creates monopolistic power for the company in digital spaces, increasing numbers of journalists have noted the difficulty to find alternatives to the company’s products. This is my experience to purge my life of Google and I can assure you it’s difficult but if we don’t act soon it will become impossible.

It’s been 1.5 years since Google+ closed and I started dipping my toes into the Fediverse and other distributed social networks. It also kicked off my search to get rid of everything Google. To DeGoogle is easier said than done because Google is everywhere from search to fonts, from the video platform YouTube to the file storage and synchronisation service Google Drive, and from blog publishing service Blogger to the Google mobile operating system Android. And the list goes on. So chances are you’re using a lot of these services and most of them require a Google account, a devious move from Google. It’s for this reason that it’s very hard to get rid of this o so convenient account.

Shattered Google logo illustrates that we need to break the power of Google on the web.
The shattered Google logo (that I made in Inkscape) illustrates that we need to break the power of Google on the web.

To get a more comprehensive view take a look at this article. Below I’ve compiled a list of the most important Google services and products that I replaced with something else.

Google Search

Search was perhaps the easiest to replace (or is it). While Google search is by far the largest search engine in the world DuckDuckGo (DDG) is becoming increasingly popular. I’ve used DDG to great satisfaction and only had to use Google search a couple of times. The only gripe that I have is that DDG isn’t free and open source software (FLOSS) let alone distributed. In that respect I’ve read some good things about Searx and I may give that a try in the future.

Chrome

The Chrome browser of Google has become very popular with an estimated market share of approximately 70%. A large portion of the Chrome’s source code is based on Chromium, the open source browser project from Google, however Chrome is proprietary freeware because it contains large blobs of proprietary code. The Spyware Watchdog considers Chrome’s Spyware level extremely high this due to multiple spyware features that are built-in such as Google Account and Navigation Assistance. Another threat comes from the earlier mentioned market share. This gets even worse when we include the other browsers that are based on Chromium such as Microsoft Edge, Opera and Vivaldi. I currently use Firefox. It’s perhaps not the most privacy minded browser around but it’s FLOSS, it has a reasonable market share which is important for support of web developers and development of Firefox is very active.

YouTube

Next is YouTube which BTW is becoming more and more annoying with all these ads and the recommendations with the sole purpose to keep the user as long as possible on YouTube (and serve even more ads). I invested a lot in YouTube in the past with over 70 video made about 3D CAD, 3D printing and electronics so replacing it is not easy. The solution that I found is two-fold. I remastered (part) of my existing videos and uploaded them to both PeerTube. If I want to watch YouTube videos I use Invidious in the browser of NewPipe on my Smartphone (still Android sadly).

Google Drive

Over the years I got dependant on Google Drive e.g to store the CAD files that I wanted to share after I published a project either in blog or a video. I want readers and viewers to be able to reproduce the project. Since I didn’t want to self-host a solution such as Nextcloud wasn’t for me (see edit below). I started looking for a paid service. I currently have a contract with Strato, a German hosting company that also hosts my websites. Strato offers HiDrive, it’s not FLOSS unfortunately but it offers 100% storage in the EU and (paid) end-to-end encryption is possible although only in the HiDrive desktop program for Windows (which is a bummer but I don’t need encryption for this purpose anyway).

Google Maps

Instead of Google maps I started using OpenStreetMap and products based on OpenStreetMap such as OsmAnd (on Android) and Komoot both on Android and the web browser. Komoot is excellent for hiking and cycling but unfortunately it isn’t FLOSS. These alternatives have proven to be good enough for me since I haven’t used Google Maps any more.

Gmail

I somehow started using Gmail. I don’t know exactly why because I already had very good email services. I also fail to understand why it’s so popular because every other email service does about the same. My own ISP comes with a very good email service and so is the web hosting company that I’m using. To stop using Gmail takes some preparation most importantly to list and notify all the people and organisations that send you email to your Gmail address. Also list all online services that use your Gmail address. Now replace this Gmail address with another email address.

You may want to delete your Gmail completely but it’s possible that it’s linked to your Google account. If this is the case you can either use a different email address for this account or more radical delete your Google account completely. In case you choose the latter remember that lots of Google services are couples to your Google account and can’t be accessed any more. Having said that if you start to purge Google from your life the Google account becomes less and less important with every Google service that you delete. So at a certain point deleting the Google account will be painless.

Android

Although Android is Free and Open Source software most Android phones come with proprietary software and services that prevent users from using the phone the way they seem fit. The easy way to free the software on your phone is to install FDroid. For most users the Google Play Store is the only way to install software on their phone. FDroid is an alternative software store that enables the user to easily install and maintain Free and Open Source software on their Android device. BTW installing FDroid and replacing proprietary apps is what I have done thus far and it’s a good start.

Even better is to replace the Google infested Android with a free version of Android like LineageOS. LineageOS is a FLOSS version of Android that can be used without a Google account and that comes without the proprietary Google apps (and perhaps other junk from the phone manufacturer). Make sure to check if your phone is supported before trying to install in on your phone.

Fonts

Yes I know, I have Google fonts in my blog. That came with the choice of the WordPress theme and I didn’t realize that at the time. That’s just another example how Google infested the web and how difficult it is to DeGoogle my life but rest assured fonts will be next.

Conclusion

To get Google out of your digital life is hard, very hard. This tells us how much Google is integrated into our lives and probably for the most part without being aware of it. Luckily we still have choice (other than just say goodbye to the web), choice that gives us freedom to use the web without being used. The freedom to control our data and not being exploited.

Edit: As someone on Mastodon pointed out it’s not necessary to self-host NextCloud. Examples of cloud service providers running Nextcloud are Disroot, OwnCube and Operationtulip.com (currently in beta).

My videos remastered on PeerTube

I uploaded my sixth remastered Solvespace video to PeerTube.

I wrote earlier about my move from YouTube versus PeerTube. My new videos will appear on both platforms but I’m also remastering my old Solvespace videos. These videos were all 720p which isn’t ideal for a tutorial. Having most of the material of the videos available I’m recreating them in 1080p. When I’m done I’ll only upload these HD videos to PeerTube. The videos take a lot of time to create and I’m currently very busy so the videos appear irregularly but whenever I have time I’ll make them.

The latest video that I remastered is about the Geneva Drive. A wonderful project to design and 3d print. I redid part of the screen recording because either the original was gone or wasn’t good enough. For this video I used the latest version of OpenShot (v2.5.0) but I’m unfortunately still having issues with this video editor. For the next video I’ll return to Shotcut which is currently my favourite free and open source editor. Here is a link to the video if you want to see it on PeerTube.

When I tried to embed a PeerTube video here I found that the WordPress embed block is not suitable for this purpose. Apparently PeerTube is not (yet) whitelisted by WordPress. Also it appears that iframe tags, my other option, are blocked by WordPress because of security reasons. That’s a bummer.

ActivityPub, the secret weapon of the Fediverse

If you’re new to the Fediverse you should know about ActivityPub and why it gives the Fediverse an edge over other social networks.

The Fediverse is the name for a number of interconnected (federated) social networks running on free and open software on hundreds or even thousands of servers all over the globe. These servers and networks are owned and maintained by a community of people and, contrary to networks like Facebook or Twitter, are not owned by a single corporation or organisation. Therefore all data and control of that data is distributed over individuals and (mostly) small organisations. That all users of these servers are able to socially interact with each other is because of the protocol behind most of the Fediverse, ActivityPub.

The Fediverse logo
Fediverse logo, 5 nodes in pentagon shape with all diagonals, multicoloured Creative Commons CC0 1.0 Universal Public Domain Dedication. Created by Eukombos

Now the boring stuff (which is actually very exciting). ActivityPub is a social networking protocol that enables the user (that’s you) to create, update and delete content over the network. In other words when you type a message, like a video or share a photo, the protocol ensures that these messages are exchanged properly. But that’s not what makes ActivityPub special. Other social networking protocols do the same thing, right? However ActivityPub is both open source software and it’s decentralized. This means that any developer can use the protocol to create an application for social media be it a micro-blog, a photo sharing app or a video sharing platform. Others (in fact anyone) can download the application, install it on a server and join an existing network (federate). Now this server becomes publicly available and you as a user can create an account and automatically join the Fediverse. Popular applications are Mastodon (microblogging), Pleroma (microblogging), PeerTube (video-streaming) and Pixelfed (image sharing)

Silos in Acatlán, Hidalgo, Mexico. (Photo by Diego Delso, License CC BY-SA, Source: Wikimedia Commons)

ActivityPub prevents that a social media platform becomes a silo (see photo) that can’t communicate with other platforms. Not only can a Mastodon user communicate with users on different servers on Mastodon, perhaps more importantly this user can also communicate e.g with a Friendica (macroblogging) user or a Pleroma user. These are totally different networks that all support ActivityPub. But this is even taken a step further where that same Mastodon user can follow his favourite PeerTube channel or someone that shares great photos on Pixelfed. This is like you were able to follow someone with your Twitter account on YouTube or Instagram. This also means that this Mastodon user can comment or like the PeerTube video from his/her Mastodon user interface. This is the true power of ActivityPub!

I already mentioned a few but there are dozens of applications that support ActivityPub. All have their different purposes and one has more ActivityPub integration than the other. One that I would like to highlight is Funkwhale. Funkwhale is a music streaming application. Like all applications mentioned above anyone can create a Funkwhale server and federate with other Funkwhale servers. The user is able to stream music from a different server, but also create favourites, make a playlist etc. Currently Funkwhale isn’t integrated with the rest of the Fediverse. Now recently the Funkwhale head developer, Eliot Berriot, started integration and made it possible to share music on Mastodon (perhaps also in Pleroma and Friendica but I haven’t tried that). This all works seamlessly thanks to ActivityPub.

The Funkwhale example demonstrates the power of ActivityPub. Applications with different purposes can work hand in hand. It avoids that Mastodon, which is by far the largest party in the Fediverse, becomes de-facto a silo. The Fediverse is supposed to be diverse and Funkwhale and other apps are enforcing that. In January 2018, the World Wide Web Consortium (W3C) published the ActivityPub standard as a Recommendation. This is an important step for the acceptance of ActivityPub by developers and leads to more applications supporting ActivityPub therefore creating even greater diversity in the Fediverse.

With the support of W3C the future of ActivityPub and the Fediverse looks bright. Chances are that more networks will start supporting ActivityPub and will join the Fediverse. And that both developers and (wannabe) admins adopt ActivityPub either for their app or their own server. I’m convinced that this is the only viable way out of the mess created of Big Tech companies like Facebook or Google.

Further listening about the Federation and ActivityPub:

YouTube or PeerTube, which will it be.

YouTube has a monopoly on video and this is bad news. Read what’s so bad about it and why PeerTube is a good alternative.

What’s wrong with YouTube

If you want to watch a video chances are you’ll end up on YT. Sure there are alternatives such as Vimeo or Dailymotion but they are tiny compared to YT. Therefore YT has a near-monopoly As you know monopolies are bad. YT can do whatever they want and users will have to accept it no matter what. Frequently I’ve seen YouTubers ranting in on their YT channel about YT because of some wrongdoing from YT but they have no where else to go (or at least that’s what they think).

YouTube collects our data and sells it. You may think that YT is free but it’s not. Users pay by providing YT with data about their behaviour on YT. This data is turned into profiles about the users and sold to third parties. These third parties can then target you for their ads.

YouTube advertisements are getting increasingly annoying. Alphabet, the holding company, wants to make YT as profitable as possible to satisfy the shareholders. This can either by offering paid premium services or (targeted) ads. Lately I noticed a sharp increase in ads and I’m confident that this will only increase further in the future.

YouTube algorithm wants to keep me on YouTube. Why? So that they sell more ads. The secret of YT is the algorithm that recommends new videos. These recommendations are based on my profile, increasing the chances that I lazily click on another video and another one. This often leaves me with a feeling of pointlessly watching videos while I should have done more productive things.

YouTube algorithm encourages controversy. Controversial videos ensures ensure views and interaction such as likes, dislikes and comments. This in turn means again the opportunity to show more ads which means more income for YT.

What are the alternatives

Vimeo is the only sizeable competitor of YT. It’s business model differs because it doesn’t show ads, instead users can pay for more premium services. Vimeo does track the users however in order to show you ads elsewhere on the web. Also with the users consent Vimeo will sell your data to third parties. Lastly Vimeo is neither open source nor is it a distributed service.

Luckily more ethical alternatives are emerging. PeerTube is one of these alternatives. PeerTube is free and open source software and it’s a decentralized video platform that uses peer to peer technology. Instead of one single organisation that controls all the PeerTube servers, all servers are controlled by different owners. Nevertheless PeerTube operates as one where videos on one server can be searched for and watched on another, thus creating a network of interconnected nodes.

Everyone can install PeerTube on a server (instance) and join the network (this is called federation). Already hundreds of instances exist. Every owner or administrator of an instance can determine which other instances it follows.

Everyone can watch videos on PeerTube but if you want to comment or like or upload your own content you must join PeerTube. To join PeerTube it’s important to understand that there is no centralized portal to login. Instead you’ll choose an instance that you want to join, you login and enter the PeerTube network from that server. This means that choosing the right instance is important. Each server provides useful information about itself but an overall list can be found here.

PeerTube has another great feature. The PeerTube instances do not only federate with other PeerTube instances, they also federate with a larger network that’s called the Fediverse. Mastodon, a social network, is one of these members of the Fediverse and it has a huge number of users. Videos can easily be shared on Mastodon and Mastodon users can comment on videos with their Mastodon account.

Having read this it’s probably not a surprise to you that I’m currently transferring my content from YouTube to PeerTube and remaster the old videos in the process. I also intend to create original content and share it solely on PeerTube. It’s a drop in the ocean and no one at YouTube will loose any sleep over it but that doesn’t matter. PeerTube is still young (2015) and the developer Framasoft is working hard to improve PeerTube. Already some free and open source companies such as Krita, OpenStreetMap and KDE have a channel on PeerTube.

I do hope that people, that love their privacy and want to control their content, will follow me and start uploading great content to PeerTube for this is the only way to get out of the YouTube stranglehold. To get you started I’ve made a list of some useful links. See you on PeerTube.

Giving OpenShot another try

After iMovie completely let me down I gave OpenShot another try and it didn’t disappoint.

I’ve been using iMovie for ages to create videos, both to document my family life and for my YouTube channel. Over the years I’ve create dozens of movies with iMovie and I kind of liked the simplicity of the program. I only wished it was free and open source software instead of proprietary.

The last couple of years I tried several free and open source alternatives notably OpenShot and Shotcut (both GPL v3 license). I was willing to jump to one of them but they were both rather unstable on my OSX system. OpenShot was the worst and crashed every few minutes making it impossible to work with. So in the end I kept using iMovie.

Recently I updated OSX to Sierra (10.12) and when I opened iMovie I noticed that everything worked except that I couldn’t render anymore. This is a disaster. All my carefully crafted movies are locked in iMovie and I’m unable to get them out of it. I really wanted to kick someone at Apple for this.

Since I couldn’t find a solution (apparently a widespread problem as I read on the web) I had no other alternative than to install OpenShot again (version 2.4.4). I didn’t have high hopes but to my surprise it was stable. I worked several days with it and it didn’t crashed once.

What I like about OpenShot is that it’s, like iMovie, very easy to use. The interface looks modern and unlike some other video-editing programs I could easily find my way around. The word intuitive springs to mind. This may give the impression that OpenShot is a very basic video-editor. OpenShot certainly can’t compete with the feature-rich major video-editors in the market but I was surprised that all basic features are included and there is more under the hood. To name just a few, the interface can easily be changed to my liking, the handling of titles is great and OpenShot enables the user to create animation which is handy.

It also offers a lot of control over the export of a video with every format, codec and quality setting available. This is probably because the video backend of OpenShot is linked to FFmpeg, IMHO the best video-converter around. (I wrote about FFmpeg earlier)

The coming weeks I will do further tests and will decide if this is my new go to video-editor. A bonus is that OpenShot is available for Linux, Windows and OSX so I can also use it on my Linux desktop.

UPDATE : 12 December 2019. After having done some projects I’ve noticed an issue with OpenShot. OpenShot tends to be very resource hungry in both memory and cpu load. This creates problems in more complex projects where the program becomes very slow. This forces me to restart OpenShot and continue. Also on my humble 2011 iMac it’s impossible to get smooth video and sound in the preview window.

UPDATE: 26 Februari 2020. I updated to version 2.5.0 (from 2.4) and it appears that this latest version is a little less resource hungry. With more complex projects with multiple sound tracks mixed I still experience stuttering in sound which is annoying when trying to edit the video. This could however be due to the 2011 iMac that I’m currently working on.

Maintaining the Raspberry Pi Squeezebox server (aka Logitech Media Server)

This article describes how to maintain a Squeezebox server (or Logitech Media Server). All software used for this project is free and open source.

I wrote earlier about the Logitech Media Server (LMS), open source software that I’ve used to turn a Raspberry Pi into a music server for my Squeezebox devices. I’m using my Raspberry Pi based Logitech Media Server a couple of months and I’ve grown very fond of it. What started as an experiment now has become a device I’m starting to rely on. I guess that eventually I have to replace the USB-HDD that I connected to the Raspberry Pi with a better one. In the meantime however I do need to maintain the LMS. In this blogpost I’ll explain how I add and remove music files from the LMS and create a simple backup of your music files. Finally I provide a tip to debug problems with the Logitech Media Server. All software that I used for this project is free and open source.

Adding, changing and deleting music files

When I buy a new CD I want to add it to my LMS. All the ripping is done on my Thinkpad T40 laptop using Asunder, a low resource ripper for Linux. In the beginning I unmounted the USB hard disk from the LMS, removed it and connected it to the laptop and copied the albums. For new albums this proved to be be a clumsy method and I quickly found myself looking for an alternative.

I decided to use FTP to transfer files over the network to the Raspberry Pi. FTP is a network protocol to transfer files between a client and a server. The software that I’m using is either FileZilla or gFTP. They have basically the same functionality but gFTP is not available for Windows while FileZilla is available for GNU/Linux, OSX and Windows. Working with both is easy enough the only problem that I had was to set the ownership for the USB hard disk on the Raspberry Pi. Only root was able to write to the disk. The reason is a bit technical and maybe confusing but I had used the Windows FAT filesystem for the USB hard disk and when I mounted it on my Linux laptop (Puppy Linux distro), ownership of all files was changed by Puppy Linux to root. At this point it was impossible to change ownership and permissions with chmod and chown from the media server. To solve this problem I had to unmount and mount the USB hard disk using the following general command:

mount device mount-point -o uid=foo -o gid=foo

or in my specific case

mount /dev/sda1 ~/media/usb-drive -o uid=pi -o gid=pi

This command sets the ownership of all files on the USB hard disk to pi instead of root enabling me to use FileZilla and gFTP to copy files from a remote PC to the Raspberry Pi.

Adding Podcasts to the server

Podcasts can be easily added to the Logitech Media Server and there is no need to subscribe to a service. First the Podcasts app must be added to myApps on the Squeezebox player or players. Next to add podcasts to the list a plugin needs to be installed. To do this open the web interface in your browser and type:

<your_Raspberry_Pi_ip_address:9000> (in my case 192.168.178.69:9000)

Choose Settings at the bottom right of the web browser and then choose the Plugins tab. Now enable the Podcasts (v2.0) plugin and reboot the Raspberry Pi for the changes to take effect. The Podcasts plugin is now active and can be entered through a new tab in the Settings menu. In this tab new feeds can be entered that will immediatly be available on the Squeezebox players. To find a certain feed look for the rss feed of your favorite podcast and copy the link into ‘add a new feed’ in the podcast tab of the Settings menu mentioned above (e.g. http://feed.thisamericanlife.org/talpodcast for This American Life).

Creating a backup of the music collection

I invested a lot of time in ripping my CD collection so it would be a shame if I lost my music files due to a hard disk crash. I therefore use a very simple backup method, largely copied from the Raspberrypi.org website to ensure that my files are safe. First make sure that there’s enough harddisk space available with df -h. Next do:

tar -cvf backup.tar.gz ~/media/usb-drive

This creates a file ‘backup.tar.gz’ that contains files in /media/usb-drive, the mounting point of my USB drive and places it in the same map. Next I use (again) Filezilla to move the backup file to my desktop computer. Alternatively the ripped files on the PC they were ripped on can serve as a backup.

Debug problems with the Logitech Media Server

I didn’t encounter much problems with the LMS but if you do take a look into the log file of the server. This can be done opening a terminal on your PC and login into the Rasperry Pi with:

ssh pi@<your_network_ip_address_of_the_server>
cat /var/log/squeezeboxserver/server.log

The sudo ssh command prompts for the password of the Raspberry Pi. Now look for anything suspicious in the log, copy it and do an internet search with your preferred search engine. Chances are someone already encountered the same problem.

Creating a Raspberry Pi Squeezebox server

Create your own Squeezebox server (or Logitech Media Server) with a Raspberry Pi and a HDD in five steps.

If you, like me, own one or more Squeezebox players you can either choose between the service mysqueezebox.com, that streams music from the internet, or set up the Squeezebox server on your own network. The Squeezebox server software (aka Logitech Media Software) being free and open source software guarantees that you’ll take control of your Squeezebox players and the music that you’re streaming.

There many hardware options for the Squeezebox server software (or Logitech Media Server) but I decided to use the Raspberry Pi 2 that I had lying around because of it’s small footprint and massive support for the Pi. Within a couple of hours I had the Logitech Squeezebox Server up an running with my music playing.

Below I’ll show how to set up the Logitech Squeezebox Server on a Raspberry Pi in five steps. I got some important steps from the Variax Firmation website but I tested everything successfully.

Raspberry Pi 2 with a USB-harddrive connected to my network with a (yellow) ethernet cable.
Raspberry Pi 2 with a USB-harddrive connected to my network with a (yellow) ethernet cable.

Step 1: Ripping CD’s and writing them on an HDD (choosing an audio format)

Before setting up a server rip the CD’s and write them to a HDD. For this project I used a small usb-harddrive that was also lying around. I formatted the HDD as FAT32. Next I collected all my music CD’s and ripped them. As ripping software I used the Asunder software on my Linux system but I guess that they’re good alternatives (fre:ac appears to be an free and open source alternative that is also available for OSX and Windows). As audio format I choose mp3. If I buy a larger drive I’ll probably move to flac.

Step 2: Installing Raspbian Lite

Next I installed Raspbian Lite (currently Raspbian Buster Lite) on the Raspberry Pi 2 by first downloading the image and writing the image to the micro SD card using these instructions for OSX (or these instructions for Windows and Linux).  I chose the lite version of Raspbian to make the server as lightweight as possible. I had no problems booting the Raspberry Pi and connecting it to my network using Ethernet. To avoid potential problems connect the Pi to a monitor with an HDMI cable and make sure that it boots properly.

Step 3: Mount the HDD on the Raspberry Pi

Now with Raspbian Lite installed I mounted the HDD that we prepared in step 1. For this first connect the HDD to the Raspberry Pi (in my case I connected the HDD through a USB port of the Raspberry Pi), login remotely and retrieve the name of the drive. To login remotely we need another computer (Windows, Linux or OSX). Open a terminal (or Putty in case of Windows) and type:

sudo ssh pi@Raspberry_Pi_ip_address (in my case 192.168.178.69)

The default password is raspberry. Then type:

sudo fdisk -l 

Then look for the HDD that is just connected. This was /dev/sda1 in my case (but this may differ in yours). To make the files on the HDD accessible to the Raspberry Pi we need mount the drive. But before that we need to make a mounting point (in this example at ~/media/usb-drive).

sudo mkdir /media/usb-drive 

and mount

 sudo mount /dev/sda1 /media/usb-drive

You should hear some HDD activity. Now type:

cd /media/usb-drive ls -l

and a list of your music should be visible.
To unmount the HDD do:

sudo umount ~/media/usb-drive
 The list of folders with albums that I ripped. In this stage I only ripped a few albums to test the system.
The list of folders with albums that I ripped. In this stage I only ripped a few albums to test the system (click to enlarge).

Step 4: Installing Logitech Media Center on the Raspberry Pi

First we need to install a library to play audio files. Since you want mp3 only do:

sudo apt-get install -y libsox-fmt-all

This installs SoX, a command line utility that, among other things, plays various types of audio files. If you want to add flac support you’ll probably need to do this

sudo apt-get install -y libsox-fmt-all libflac-dev

Now with the audio libraries in place the Logitech Media Software can be downloaded. We want the latest version which is 7.9.2.

sudo wget -O logitechmediaserver_all.deb $(wget -q -O - "http://www.mysqueezebox.com/update/?version=7.9.2&revision=1&geturl=1&os=deb")

Now install the server software with:

sudo dpkg -i logitechmediaserver_all.deb

With all the software installed we’re ready to go.

Step 5: Working with Logitech Media Center

To enter the web interface of the Logitech Media Center on the Pi we need a computer and a browser. In the browser url we type:

<your_Raspberry_Pi_ip_address:9000> (in my case 192.168.178.69:9000)

The Logitech Media Center is started for the first time and a script is started to set it up. Important is that the mounting point of the HDD (in my case /media/usb-drive) is entered. This way the Media Center is able to retrieve all the music files. This is done in the web interface by entering the path of the mounting point under Media Settings under Media Folders.

The Media Settings page of the web interface. Enter the path of the mounting point under Media Folders.
The Media Settings page of the web interface. Enter the path of the mounting point under Media Folders (click to enlarge).

The Logitech Media Server is now ready and every time the Raspberry Pi boots the Logitech Media Server is automatically started however the HDD is not automatically mounted so we need to change that. This is done by editing (with nano) the fstab system configuration file that can be found at /etc/fstab

sudo nano fstab

and add the following line

/dev/sda1 /media/usb-drive vfat& defaults 0

Save the file and exit nano. Reboot the Raspberry Pi. Now the installation is complete. The music can be played from the web interface (see above), with the remote controls that come with the Squeezebox devices, with a free app for Android or with iPeng for iOS. The Squeezebox Radio also has controls on the device to play the music. So, plenty of options.

Webinterface of the Logitech Media Server (click to enlarge).

Whats next

In a future blog entry I’ll explain how to maintain the Logitech Media Server e.g how to add music to the server remotely.

Create animated GIFs from MP4 with FFmpeg

Learn how to create an animated GIF that’s small enough to upload but with a decent quality.

Animated GIFs are after all these years still pretty popular. FFmpeg is a good FLOSS tool to create these animated GIFs. FFmpeg is available for Windows, Linux and OSX. A word of warning FFmpeg is a command line tool that’s very versatile but it’s not for everybody. In fact suppose this post is more for users that like to tinker a lot with their animated GIFs. Below I will explain not only how to create a animated GIF from an mpeg4 movie but I also provide instructions to improve the quality.

The basic command to create an animated GIF from a mpeg4 is:

ffmpeg -i input.mp4 output.gif

where the name of the input file is input.mp4 and output.gif is the name of the output file. Unfortunately gif images are large due to their lossless data compression. So you’ll end up with a file that’s much bigger than the original mpeg4 and probably something that exceeds the upload limit of Diaspora*, Friendica or Mastodon.

In order to reduce the size of the file we can reduce the size of the images or we can reduce the number of frames per second. To achieve this we need the following command:

ffmpeg -i input.mp4 -r 12 -s 320x180 output.gif

This command reduces the framerate to 12 per second and resizes to 320×180 pixels. For the size of the GIF make sure that the aspect ratio remains the same or the resulting GIF will be distorted.

When we look closely at the resulting GIF we clearly notice some shortcomings in the animation. This is due to the default GIF encoding in FFmpeg. Because GIFs only uses 256 colors the number of colors from the mpeg4 needs to be reduced. FFmpeg by default uses a generic palette of 256 colors that covers the widest range of content. This is in general not optimal for the specific video that you want to convert. Luckily FFmpeg allows us to create a custom palette for our specific video. To create this palette type:

ffmpeg -i input.mp4 -filter_complex "[0:v] palettegen" palette.png

When we look in the folder of our mpeg file well noice that a file ‘palette.png’ has been added. This is our newly created 256 color palette for our specific video which is generated by the palettegen filter. To use the new palette with our mpeg video type:

ffmpeg -i input.mp4 -i palette.png -r 12 -s 320x180 -filter_complex "[0:v][1:v] paletteuse" prettyOutput.gif

FFmpeg needs two input files (streams) in this case test.mp4 and our newly created palette.png. The paletteuse filter takes the two streams as input specified by [0:v] and [1:v] where v stands for video and the preceding number for the number of the stream. The output file is renamed to prettyOutput.gif to differentiate it from the earlier output.gif. The resulting video should be much … prettier. If your resulting video is still too large either reduce the frame rate or resize even further (or just reduce the length of the video of course).

Further reading:
http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
https://engineering.giphy.com/how-to-make-gifs-with-ffmpeg/

FLOSS tools to create a forum or community

With G+ closing in a couple of months community owners are searching for alternatives. I provide a number of FLOSS options.

Introduction

With the demise of G+ a lot of community owners are suddenly looking for a new home. Since a lot of G+ users despise FaceBook (and rightfully so) other social networks are mentioned. The problem with a lot of these networks is that they are centralized and proprietary making the users depending on the whims of the owner of the network. Below I summerize the FLOSS options for people interested in setting up a community. This is not an exhaustive list. I encountered these options after discussions often on G+ and I experimented with some of these options during the last couple of months.

Self-hosted or not

An important decisions is whether or not to host the forum or community yourself. If you want to host it yourself you’ll keep full control of the server however the maintenance is considerably more labor-intensive than with a non-selfhosted solution. You also need to install the software on a server and configure it.

Friendica (self-hosting possible)

Both are macroblogging social media networks that offer the possibility to create a forum. The UI of Friendica doesn’t look very modern but the functionality needed to use and maintain a forum is all there. Click this link to see an example of what a Friendica forum looks like. If you want to create a forum on a existing server please note that the administrator of this server can place limits to the forum e.g the number of participant or the number of forums that can be created by one account. Be aware that you’re a guest on someone else’s server.

A practical example. In the German town of Zwenkau the citizens are provided with a community platform, the Zwenkauer Flaschenpost, for online communication and discussion between citizens. This is all done with a standard Friendica install on a server. If you want to read more here is a link.

Movim (self-hosting possible)

Movim is social platform that let you share and chat. Movim is build on top of the XMPP communication protocol. A strength of Movim is that is federates and that everyone with a XMPP account (e.g Jabber) can connect. Once you’ve created an account it’s very easy to create a community. The UI looks modern but some community admin features are missing (or I couldn’t find them). As an example as an owner I couldn’t ban someone from the community. On the other hand I found Movim community the easiest to set up (in a non-selfhosted environment). This is a link to my Movim community. Also a word of warning if you create a forum on an existing server be aware that you’re a guest of that server and that restriction may be applicable.

I recently wrote a more lengthy post about the chat capabilities of Movim.

Mastodon (self-hosting possible)

Mastodon is a microblog social network that has a TweetDeck like interface. I was hesitant to add it to this list because the UI and the dynamic experience differ from a classical forum where the same post remains in the viewport for days or weeks. However when joining the right instance (=server) or create one yourself it may very well become a great dedicated community. Here is a link to mastodon.art an instance where artists can show their artwork.

Flarum (only self-hosting)

Open source forum software that is currently in beta. Nice, modern UI. I’ve read some concerns about the beta status and the stability of Flarum. If you want to see what the interface looks like here is a link. Here is a link to a guide how to install Flarum.

NodeBB (self-hosting possible)

Open source forum software with a modern UI. You can either self host for free or use a NodeBB hosting plan that comes with a price tag. Here is a link to the source of NodeBB. You can check the interface yourself on this website.

phpBB (self-hosting possible)

Forum software based on the PHP programming language. I know phpBB mainly because it’s used on the FreeCAD forum, a place that I visit sometimes. phpBB is feature rich and from a user perspective it’s a joy to use. The documentation about this forum software can be found here. Here is a link to the source code.

Discourse (self-hosting possible)

Discourse discussion management software with a modern UI. It can either be self-hosted or Discourse can host for you. The latter which is clearly the business model of Discourse comes at price tag. If you want to see what Discourse looks like take a look at the discussion forum of Diaspora*or Tom’s 3D community. Here is a link to the source code and another to the install guide.

EDIT: I removed the Osada social network because the developers decided to abandon it.

Last updated: 03 februari 2020