Hello everyone. First, many thanks for keeping get_iplayer going. It's a fantastic piece of software and I'm glad it still works.
I don't use mplayer (I think it's a buggy frontend to ffmpeg's libavcodec, and prefer VLC), so I was dismayed to see that get_iplayer always uses mplayer instead of ffmpeg for converting FLV->MP3 (flashaudio mode). Checking the version history, this decision was made two years ago in version 1.18 and hasn't changed since: > * Now use mplayer to demux the flv stream into mp3, ffmpeg can only seem to > retranscode the flv to mp3 with obvious loss in quality. This is simply not the case for me, using Ubuntu's ffmpeg 0.5.1. ffmpeg transcodes flawlessly. Perhaps it was true two years ago? A survey could clear things up. Who has a broken ffmpeg installed that produces bad or lower quality MP3s when you run "ffmpeg -i x.flv -acodec copy x.mp3"? In any case, here is a patch to use ffmpeg if mplayer doesn't exist. --- a/get_iplayer +++ b/get_iplayer @@ -8103,14 +8103,10 @@ sub get { move($file_tmp, $prog->{filename}) if $file_tmp ne $prog->{filename} && ! $opt->{stdout}; return 0; - # Convert flv to mp3/aac - } elsif ( $mode =~ /^flashaudio/ ) { + # Convert flv to mp3 using mplayer + } elsif ( $mode =~ /^flashaudio/ && main::exists_in_path('mplayer')) { # We could do id3 tagging here with ffmpeg but id3v2 does this later anyway - # This fails - # $cmd = "$bin->{ffmpeg} -i \"$file_tmp\" -vn -acodec copy -y \"$prog->{filepart}\" 1>&2"; - # This works but it's really bad bacause it re-transcodes mp3 and takes forever :-( - # $cmd = "$bin->{ffmpeg} -i \"$file_tmp\" -acodec libmp3lame -ac 2 -ab 128k -vn -y \"$prog->{filepa - # At last this removes the flv container and dumps the mp3 stream! - mplayer dumps core but apparen + # old versions of ffmpeg may fail, so use mplayer if available @cmd = ( $bin->{mplayer}, @{ $binopts->{mplayer} }, @@ -8118,8 +8114,8 @@ sub get { $file_tmp, '-dumpfile', $prog->{filepart}, ); - # Convert flv to aac/mp4a - } elsif ( $mode =~ /flashaac/ ) { + # Convert flv to aac or mp3 using ffmpeg + } elsif ( $mode =~ /flashaac|flashaudio/ ) { # This works as long as we specify aac and not mp4a _______________________________________________ get_iplayer mailing list get_iplayer@lists.infradead.org http://lists.infradead.org/mailman/listinfo/get_iplayer