Audio Video and Photo How To

How to add custom commands to Quodlibet

Enable custom commands plugin
create ~/.quodlibet/lists/customcommands.json
Add the following

"Browse folders (Dolphin)": {
"name": "Browse folders (Dolphin)",
"pattern": "<~dirname>",
"max_args": 50,
"command": "dolphin",
"unique": true,
"parameter": ""
"Copy to ~/Temp flat": {
"name": "Copy to ~/Temp flat",
"pattern": "<~filename>",
"max_args": 300,
"command": "cp  -t /home/user/Temp",
"unique": false,
"parameter": ""
"Copy to Temp perserve paths": {
"name": "Copy to Temp perserve paths",
"pattern": "<~filename>",
"max_args": 300,
"command": "cp --parents -t /home/user/Temp",
"unique": false,
"parameter": ""

How to split and merge video


avconv -i input.mp4 -t 00:01:02 -codec copy p-edit2.mp4
avconv -i input.avi -vcodec copy -acodec copy -ss 00:00:00 -t 00:30:00 output1.avi
avconv -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi

use -ss hh:mm:ss.msec to indicate start

sudo apt install gpac
 MP4Box -cat p-edit1.mp4 -cat p-edit2.mp4 -cat prez2.mp4 final.mp4

How to download only audio from youtube

youtube-dl -x --audio-format mp3''video_id''

You can get the whole private channel by supplying a user name and the password:
youtube-dl --username ''user@email.dom'' -x --audio-format mp3''channel_id''

How to extract audio from an mp4

avconv -i [input file] -vn [output].mp3

How to add an audio track to an MKV Matroska video

Get mkvmerge from the mkvtoolnix package then run
mkvmerge -o "file with extra track.mkv" --default-track 0 --track-name 0:MyNewTrack audio-track.ac3 video-file.mkv
Audio preceeds the video in the argument list to ensure it's the track number 0. The detault track and the track name are the nice (optional) arguments. You could also try mkvtoolnix-gui for the GUI approach.

How to split audio files using cue sheet

Assuming you want to do it for APE files. First add a repo for the MAC codec
sudo add-apt-repository ppa:flacon/ppa #required for MAC package
sudo apt-get update 
Get the tools:
sudo apt-get install shntool cuetools mac
Split the file
cuebreakpoints *.cue | shnsplit -o flac *.ape
And copy the tags
cuetag *.cue split-track*.flac
You can then convert it to MP3 with soundconverter and use puddletag to rename files to match their tags.

How to move photos already on the Shotwell database

sqliteman photo.db
Or sqlite3
Change this sql query('/old/path/' and '/new/path/'):

update phototable set filename = replace(filename, '/old/path/', '/new/path/') where filename like '/old/path/%';
update backingphototable set filepath = replace(filepath, '/old/path/', '/new/path/') where filepath like '/old/path/%';
update videotable set filename = replace(filename, '/old/path/', '/new/path/') where filename like '/old/path/%';


SELECT filename FROM phototable WHERE filename NOT like '/new/path/%';
SELECT filepath FROM backingphototable WHERE filepath NOT like '/new/path/%';
SELECT filename FROM videotable WHERE filename NOT like '/new/path/%';

How to find corrupt JPEG

Verify EXIF

find . -iname '*jpg' -print0 | xargs -0 exiftool -warning

Verify contents

find . -iname '*jpg' -print0 | xargs -0 jpeginfo -c | grep -E "WARNING|ERROR"

How to resize an image in a script

A script I use to generate the thumbnails:

#!/bin/bash -x
nice -n 20 transcode -V -i "${INPUT}" -y jpg,null -o "${TEMPFILE}" -c 2000-2001
mv "${TEMPFILE}000000.jpg" "${OUTPUT}"

How to convert Videos for mobile devices

Give Handbrake a try. It's a nice gui front end to avconv. Avconv is a fork of ffmpeg.
Otherwise convert your videos using WinFF

  • Use these settings: 480x320, 15fps, XVid in AVI. (mplayer4iphone)
  • It may be crucial to keep the fps to 15, since 24fps, etc. was jerky for me.
  • Here's my preset for WinFF if you want to create one: -r 15 -vcodec libxvid -vtag XVID -s 480x320 -aspect 4:3 -maxrate 1800k -b 1500k -qmin 3 -qmax 5 -bufsize 4096 -mbd 2 -bf 2 -flags +4mv -trellis 1 -cmp 2 -subcmp 2 -g 300 -acodec libmp3lame -ar 48000 -ab 128k -ac 2

How to convert MP3 tags to UTF8

sudo apt-get install easytag


sudo aptitude install python-mutagen 


cd <dir>
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

Find all files in a folder that have a specific EXIF tag

find 2006/03 -type f -exec bash -c 'exiftool "{}" | grep -q D70 && echo {}' \;
-q is to quiet grep

Rename all photos in the current folder by their exif date

for i in *; do exiv2 -F -r '%Y-%m-%d.%H%M%S.:basename:' "$i"; done
-F appends _1, _2 on a name conflict
-r does the rename

@HowTo @AudioandVideo