Extract audio from a video

To see the audio streams in the file:

avconv -i video_in.webm

To extract stream 1:

avconv -i video_in.webm -map 0:1 -acodec copy -vn audio_out.ogg

or

avconv -i orig.webm -c:a libvorbis -b:a 128k -vn target.ogg

Convert an flv of wmv video to webm (vorbis)

avconv -i ./input_file.flv -y -c:v libvpx -b:v 450k -c:a libvorbis -b:a 128k ./output_file.webm

Convert an mp3 audio to ogg (libvorbis)

avconv -i in.mp3 -map 0:0 -codec libvorbis -format ogg out.ogg

Convert .avi to .webm,

And select only video track 0, audio track 2, bitrate 800 and framerate 24:

avconv -i input.avi -map 0:0 -c:v libvpx  -map 0:2 -c:a libvorbis -b:v 800k -r:v 24 output.webm
  • -map: take track 0:n from input
  • -c:a: audio codec (type avconv -codecs to list all available codecs)
  • -c:v: video codec
  • -b:v: bitrate video
  • -r:v: framerate video

Convert .avi to .ogv

Only video track 0.0, 0.2 audio track, video quality 7/10 and audio quality 6/10

avconv -i input.avi -map 0:0 -c:v libtheora -q:v 7 -map 0:2 -c:a libvorbis -q:a 6 output.ogv
  • -q:v: video quality, en un rango entre 0-10; un buen intervalo es 5-7
  • -q:a: audio quality, idem; un buen intervalo es 3-6

Batch conversion


for file in *.webm;do avconv -i "${file}" -c:a libvorbis -b:a 192k "${file/%webm/ogg}";done
for file in *.webm;do avconv -i "${file}" -c:a libmp3lame -b:a 192k "${file/%webm/lame}";done
for file in *.mp3;do avconv -i "${file}"  "${file/%mp3/ogg}";done
find . -type f -iname "*.webm" -exec bash -c 'FILE="$1"; ffmpeg -i "${FILE}" -vn -ab 128k -ar 48000 -y "${FILE%.webm}.mp3";' _ '{}' \;
for FILE in *.webm; do
    echo -e "Processing video '\e[32m$FILE\e[0m'";
    ffmpeg -i "${FILE}" -vn -ab 128k -ar 44100 -y "${FILE%.webm}.mp3";
done;