Convert wma to mp3@128k

for f in *.wma; do ffmpeg -i "$f" -ab 128k "${f%.wma}.mp3" -ab 128K; done
Convert all wma to mp3@128k with ffmpeg into directory.

1
By: mrehqe
2011-11-25 17:48:26

These Might Interest You

  • Download YouTube videos as .flv and convert them to .3gp for your mobile phone.


    5
    ffmpeg -i file.flv -r 15 -b 128k -s qcif -acodec amr_nb -ar 8000 -ac 1 -ab 13 -f 3gp -y out.3gp
    jjclarkson · 2009-03-23 14:30:45 1

  • 11
    find -name '*wma' -exec ffmpeg -i {} -acodec vorbis -ab 128k {}.ogg \;
    muadib · 2009-02-28 20:45:19 2
  • yt-mp3chanrip() { for count in 1 51 101 151 201 251 301; do for i in $(curl -s http://gdata.youtube.com/feeds/api/users/"$1"/uploads\?start-index="$count"\&max-results=50 | grep -Eo "watch\?v=[^[:space:]\"\'\\]{11}" | uniq); do ffmpeg -i $(wget http://youtube.com/"$i" -qO- | sed -n "/fmt_url_map/{s/[\'\"\|]/\n/g;p}" | sed -n '/^fmt_url_map/,/videoplayback/p' | sed -e :a -e '$q;N;5,$D;ba' | tr -d '\n' | sed -e 's/\(.*\),\(.\)\{1,3\}/\1/') -vn -ab 128k "$(youtube-dl -e http://youtube.com/"$i").mp3"; done; done; unset count i; } create the function and run with yt-mp3chanrip YoutubeUsername Great for channels like ukfDrumAndBass that only post music. No more need for third party browser plugins or websites that only convert one vid one at a time. It'll convert and save to CWD up to 300 of a user's videos to mp3s, one at a time. To increase, just increment the $count pattern. This is a concoction from commands #7718 and #7752, so it uses ffmpeg wget, curl, sed, and youtube-dl -- youtube-dl is only used to get the title of the video which it uses to name the mp3 file. You can use a different naming method if you want and the function should still work.


    0
    Command in description (Your command is too long - please keep it to less than 255 characters)
    m1cawber · 2011-02-01 17:36:32 2
  • yt2mp3(){ for j in `seq 1 301`;do i=`curl -s gdata.youtube.com/feeds/api/users/$1/uploads\?start-index=$j\&max-results=1|grep -o "watch[^&]*"`;ffmpeg -i `wget youtube.com/$i -qO-|grep -o 'url_map"[^,]*'|sed -n '1{s_.*|__;s_\\\__g;p}'` -vn -ab 128k "`youtube-dl -e ${i#*=}`.mp3";done;} squeezed the monster (and nifty ☺) command from 7776 from 531 characters to 284 characters, but I don't see a way to get it down to 255. This is definitely a kludge!


    0
    Command in description (Your command is too long - please keep it to less than 255 characters)
    __ · 2011-02-03 08:25:42 1

What Others Think

Congratulations, you have just converted your music from one proprietary format into another, probably causing it to sound even worse due to transcoding issues. Also, it'll only work on DRM-free wma's which, I'm sad to say, are rare.
h3xx · 338 weeks and 3 days ago
yes, I know, but my car audio can read only mp3. If you like ogg, just try: for f in *.wma; do ffmpeg -i "$f" -ab 128k "${f%.wma}.ogg" -ab 128K; done set -ab parameter how you like.
mrehqe · 338 weeks and 3 days ago
Nice, thanks! Just what I needed... Worked great on Mac OS X 10.8.2
SeanDeNigris · 283 weeks and 4 days ago
I'm new to bash and trying to get this to work recursively (presumably using find). I had tried just executing something like: find ./ -name '*.wma' -type f -print0 | xargs -0 -I f ffmpeg -i "$f" -ab 128k "${f%.wma}.mp3" -ab 128K but the one part that's not working is the string mod op when saving the new mp3 file with an mp3 rather than wma extension. It seems like my piped variable is treated differently than when $f was just an expanded variable. What am I doing wrong here and is there an overall better approach? tia
howarddierking · 281 weeks ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: