[FFmpeg-devel] Add waveformat extensible support in wav muxer (SoC qualification task)

Benjamin Larsson banan
Fri Mar 27 18:06:45 CET 2009


zhentan feng wrote:
> Hi
>
> 2009/3/27 Benjamin Larsson <banan at ludd.ltu.se>
>
>   
>> zhentan feng wrote:
>>     
>>> Hi
>>>
>>> 2009/3/26 Benjamin Larsson <banan at ludd.ltu.se>
>>>
>>>       
>>>> zhentan feng wrote:
>>>>
>>>>         
>>>>> Hi
>>>>>
>>>>> 2009/3/26 Michael Niedermayer <michaelni at gmx.at>
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> On Thu, Mar 26, 2009 at 01:19:00AM +0800, zhentan feng wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Hi,
>>>>>>>
>>>>>>> Here is patch for the small task of qualification tasks NO.30.
>>>>>>> Based on the work of Benjamin Larsson, I generated the pathc as
>>>>>>>               
>> below.
>>     
>>>>>>>      I think it must need further modifies.
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> yes, iam not sure if this or benjamins patch was better
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>> I downloaded the 6-channel wav file from:
>>>>>
>>>>>
>>>>>           
>> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav
>>     
>>>>> ( and other typr wav files can acess here :
>>>>> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html)
>>>>>
>>>>> 1) then I run ./ffmpeg_g -i 6_Channel_ID.wav channel4.wav
>>>>>
>>>>> I get the error:
>>>>> Resampling with input channels greater than 2 unsupported.
>>>>>
>>>>> so I run another command:
>>>>> 2) ./output_example test.wav
>>>>> ./ffmpeg_g -i test.wav -ac 4 ch4.wav
>>>>>
>>>>> and enc->channels is 4, however enc->channel_layout is 0.
>>>>>
>>>>>
>>>>>
>>>>> Finally, I have 2 questions:
>>>>>
>>>>> 1) how to test the muxer works correctly?
>>>>>
>>>>>
>>>>>           
>>>> When the muxer works correctly it should be possible to transcode a wav
>>>> file that contains the wavformatextensible header.
>>>>
>>>>  2) where to specify the enc->channel_layout?
>>>>         
>>>> It should be filled in by ffmpeg.c.
>>>>
>>>>         
>>> I debug the commandline:
>>> ./ffmpeg_g -i test.wav -ac 4 4ch.wav
>>>
>>> and found that the enc->channel_layout value is assigned from the input
>>>       
>> file
>>     
>>> channel_layout. In this case, it is 0.
>>> and it seems that "-channel_layout" option doesn't work.
>>>
>>> 1) is it need to refresh the channel_layout value according to the
>>>       
>> channels
>>     
>>> in ffmpeg.c or in put_wav_header()?
>>> 2) any tools to examine the output file is correct?
>>>
>>> zhentan feng
>>>       
>> Hi, this is the latest version of my patch. This adds the maybe correct
>> GUID values. To really test this you need to find a wav file with a
>> corrrect dwChannelMask. And then make sure that the muxer puts the same
>> mask to the transcoded file. The output file should also be playable in
>> windows.
>>
>> [...]
>>     
>
>
> 1) I download the 6 channels sample wav file form the follow link:
> http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/Microsoft/6_Channel_ID.wav
>
> then acoording to the new patch, I run the command:
> ./ffmpeg -i 6_Channel_ID.wav output_ch6.wav
>
> the program run normaly, here is the output result.
>
> Input #0, wav, from '6_Channel_ID.wav':
>   Duration: 00:00:05.83, bitrate: 4233 kb/s
>     Stream #0.0: Audio: pcm_s16le, 44100 Hz, 6 channels
> (FL|FR|FC|LFE|BL|BR), s16, 4233 kb/s
> Output #0, wav, to 'output_ch6.wav':
>     Stream #0.0: Audio: pcm_s16le, 44100 Hz, 6 channels
> (FL|FR|FC|LFE|BL|BR), s16, 4233 kb/s
> Stream mapping:
>   Stream #0.0 -> #0.0
> Press [q] to stop encoding
> size=    3017kB time=5.84 bitrate=4233.7kbits/s
> video:0kB audio:3017kB global headers:0kB muxing overhead 0.002201%
>
> 2) The file 6_Channel_ID.wav can be palyed by windows mediaplayer, but the
> output_ch6.wav can't.
>
> I compared the two wav files and found that 6_Channel_ID.wav has 60 more
> bytes than output_ch6.wav
> the 60 bytes are after WAVEFORMATEXTENSIBLE sturct,followed by the data.
> Except for the 60 bytes, the two files are all the same.
>
> However, I noticed that the sample website says about 6_Channel_ID.wav that
> :"This file has a "cue " chunk with a count of zero cue points, followed by
> two empty cue point structures."
>
> my question is:
> are the 60 bytes cue chunk? and how to handle this?
>
> zhentan feng
> thanks
>   

Locate and look at the GUID in the original and the ffmpeg muxed file. 
They most likely differ.

MvH
Benjamin Larsson





More information about the ffmpeg-devel mailing list