Extract audio from video in Linux with a GUI program?
Command line
If you're willing to forgo using a GUI you can use ffmpeg
fairly easily to do this.
Sample file
If you go to QuickTime: Sample files, you can download this sample file, sample_mpeg4.mp4. After downloading it, unzip it.
$ ls -l | grep sample
-rw-rw-r-- 1 saml saml 235829 Nov 4 2005 sample_mpeg4.mp4.zip
-rw-r--r-- 1 saml saml 245779 Nov 3 2005 sample_mpeg4.mp4
Example
You can extract the AAC audio frpm the mP4 file.
$ ffmpeg -i sample_mpeg4.mp4 -vn -acodec copy sample_mpeg4.aac
FFmpeg version 0.6.3-rpmfusion, Copyright (c) 2000-2010 the FFmpeg developers
built on May 5 2011 19:20:01 with gcc 4.5.1 20100924 (Red Hat 4.5.1-4)
...
...
Output #0, adts, to 'sample_mpeg4.aac':
Metadata:
encoder : Lavf52.64.2
Stream #0.0(eng): Audio: aac, 32000 Hz, stereo, 48 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 31kB time=4.99 bitrate= 50.4kbits/s
video:0kB audio:30kB global headers:0kB muxing overhead 3.594943%
The resulting AAC file.
$ ls -l |grep sample
-rw-rw-r-- 1 saml saml 31468 Oct 4 22:09 sample_mpeg4.aac
-rw-r--r-- 1 saml saml 245779 Nov 3 2005 sample_mpeg4.mp4
-rw-rw-r-- 1 saml saml 235829 Nov 4 2005 sample_mpeg4.mp4.zip
You can also use ffmpeg
to confirm the file format:
$ ffmpeg -i sample_mpeg4.aac
...
...
Input #0, aac, from 'sample_mpeg4.aac':
Duration: 00:00:05.59, bitrate: 45 kb/s
Stream #0.0: Audio: aac, 32000 Hz, stereo, s16, 45 kb/s
At least one output file must be specified
GUI
You can use VLC and it's Convert/Stream feature to do this. After launching VLC.
Example
Select Convert/Save from File pulldown
Select video file, and convert stream
Start the conversion
Better than trying to add context menu commands to the minimalist Pantheon-Files of Elementary OS or to use other media applications to extract sound from video, I guess the most simple is just to install Nautilus (it is not at all problematic in eOS, contrary to Thunar, which comes with the whole Xfce environment).
sudo apt-get install nautilus
Then install Nautilus-Actions Configuration Tool and open it..
I will provide an example for extracting audio (aac in m4a container) from flv and mp4 video files.
Define a new action, give it a name, maybe an icon too. Check - 'Display action in selection context menu'.
Under the command tab, add the command
bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f
.
Under Execution tab there are options to select depending on what you want to see during and after the action (open terminal, report).
Under Mimetypes tab, enter the filters for the type of files in the context menu of which you want to see the command - in this case: video/mp4
and video/flv
.
There are other options, but these look sufficient for the purpose of my question.
Similar actions can be added to extract sound from other types of video and, of course, for other very different purposes.
(This solution is based on suggestions and solutions present in the links already posted in the question and the credit goes to the authors.)
Can be used in Thunar custom actions too.
My initial source is this.