[PATCH] Output AAC as M4A for iTunes with metadata tags (Shevek)

Shevek shevek at shevek.co.uk
Thu Mar 31 15:22:26 EDT 2011


On 31 March 2011 20:06, dinkypumpkin <dinkypumpkin at gmail.com> wrote:
>
> On 31 Mar 2011, at 19:55, Shevek wrote:
>
>> On 31 March 2011 16:21, dinkypumpkin <dinkypumpkin at gmail.com> wrote:
>>>
>>> ffmpeg -i test.flv -vn -acodec copy -f adts - | ffmpeg -i - -vn -acodec copy -absf aac_adtstoasc -y test.m4a
>>>
>>
>> This works great, however with get_iplayer on windows it is possible
>> to have spaces in the file path and so only works if the flv and m4a
>> paths are in quotes.
>>
>> How will this affect linux versions?
>
> Paths should always be quoted for that reason.  It will work with Linux/OSX.
>

very confused now...

I have changed the ffmpeg command so it is output like this:

..\ffmpeg\ffmpeg.exe -i "D:\Users\Shevek\Desktop\iPlayer
Recordings/iPM_-_26_03_2011_b00zm4mq_default.partial.m4a.flv" -vn
-acodec copy -f adts - | ..\ffmpeg\ffmpeg.exe -i - -vn -acodec copy
-absf aac_adtstoasc -y "D:\Users\Shevek\Desktop\iPlayer
Recordings/iPM_-_26_03_2011_b00zm4mq_default.partial.m4a"

When run in get_iplayer, ffmpeg returns an error: Unable to find a
suitable output format for '|'

however, if I run it from a windows cmd from the get_iplayer dir it runs fine.

What am I doing wrong?

This is the bit of get_iplayer I have changed:

	# Convert flv to aac/mp4a
	} elsif ( $mode =~ /flashaac/ ) {
		# This works as long as we specify aac and not mp4a
		@cmd = (
			$bin->{ffmpeg},
			'-i', '"' . $file_tmp . '"',
			'-vn',
			'-acodec', 'copy',
			'-f', 'adts',
			'-',
			'|',
			$bin->{ffmpeg},
			'-i', '-',
			'-vn',
			'-acodec', 'copy',
			'-absf', 'aac_adtstoasc',
			'-y', '"' . $prog->{filepart} . '"',
		);



More information about the get_iplayer mailing list