Skip to content

Ffmpeg

Get part of file

ffmpeg -ss 0 -i file.mp3 -t 30 file.wave
  • -ss 0 - Start at 0 seconds
  • -t 30 - Capture 30 seconds (from 0, so 0:00 - 0:30). If you want 1 minute of audio, use -t 60.
  • file.mp3 - Input file
  • file.wav - output file

Get first n seconds of mp3

via https://stackoverflow.com/a/44032

$n = 30
ffmpeg -t $n -i inputfile.mp3 -acodec copy outputfile.mp3

Remove first n seconds of mp3

n=30
ffmpeg -ss $30 -i "song-with-stupid-intro.mp3" -acodec copy "song.mp3"

Extract Audio

https://gist.github.com/protrolium/e0dbd4bb0f1a396fcb55

ffmpeg -i video.mp4 -f mp3 -ab 320000 -vn music.mp3

Extract from webm

ffmpeg -i video.webm -vn -ab 128k -ar 44100 -y song.mp3
ffmpeg -i video.webm -vn -y song.mp3

Merge mp3 files

ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy playlist.wav
ffmpeg -i playlist.wav -vn -ar 44100 -ac 2 -ab 320k -f mp3 playlist.mp3

Convert m4a to mp3

ffmpeg -i input.m4a -acodec libmp3lame -ab 320k output.mp3
find ./ -maxdepth 1 -type f \
                    -iname '*.m4a' | cut -c 3- | sed -e 's/\.[^.]*$//' | xargs -I '{}' \
                    ffmpeg -i "{}.m4a" -acodec libmp3lame -ab 320k "{}.mp3"

Convert Flac to MP3

ffmpeg  -i infile.flac  -c:v copy -q:a 0  outfile.mp3
find ./ -maxdepth 1 \
        -type f \
        -iname '*.flac' \
        -printf '"%p"\n' | sed -e 's/\.[^.]*$/\"/' | xargs -I '{}' \ 
        ffmpeg  -i "{}.flac" -c:v copy -q:a 0 "{}.mp3"
for f in *.flac; do n=$(echo "$f" | cut -d'.' -f1); ffmpeg  -i "$n.flac" -c:v copy -q:a 0 "$n.mp3"; done

Fix corrupt mp4 file from kazam screen recording

ffmpeg -i <your input video>.mp4 -pix_fmt yuv420p -vcodec libx264 -acodec avc <output file name>.mp4

Split File into Segments

ffmpeg -i "whole-file.mp3" -map 0 -f segment -segment_time 600 -c copy out%03d.mp3

600 = 10 minutes (60 * 10)