[Libav-user] Extracting samples from audio file
pasanen.tuukka at gmail.com
Thu Aug 17 11:08:32 EEST 2017
I have written example how to extract PCM from data with FFMpeg. It's
not a bible how to make it but and example..
Philippe Gorley kirjoitti 16.08.2017 klo 00:06:
> On 2017-08-15 04:40 PM, Paul B Mahol wrote:
>> On 8/15/17, Philippe Gorley <philippe.gorley at savoirfairelinux.com>
>>> On 2017-08-10 01:17 PM, salsaman wrote:
>>>> Correct, you would first create the swr_context then use it to convert
>>>> the data.
>>>> Libav-user mailing list
>>>> Libav-user at ffmpeg.org
>>> I'm still struggling with getting this to work. My code is here:
>>> The commented out code at the bottom is the old Sndfile code, which I'd
>>> like to replace using FFmpeg. What it does is read all the audio
>>> into an array of int16_t. NB: Sndfile calls them frames, while FFmpeg
>>> calls them samples.
>>> Right now, my code gives me low volume static.
>>> I'm setting up the decoding pipeline, it (seems to, at least) works.
>>> getting the same number of samples as Sndfile does. I'm guessing the
>>> problem lies with the resampling code.
>>> I'm calling swr_config_frame and swr_convert_frame for each decoded
>>> frame, loop through the output frame's extended_data and append
>>> samples to an std::vector.
>>> AudioSample is an alias for int16_t.
>>> AudioBuffer is a container with an
>>> (one for each channel).
>>> AudioFormat is a POD struct with the sample rate and number of
>>> Can anyone look at this and tell me what I'm doing wrong?
>> needResamping is triggered only when same sample rate is both ways.
>> Are you sure that swr resample code works that way, you can not
>> guarantee it will
>> give output frame for each input frame. There are nice swr examples in
>> repo, Have you looked at them?
> Even when commenting out the else block and forcing the resampling, I
> get the problem. But yes, that might be a future problem. Thanks for
> flagging it.
> I have looked at docs/examples/resampling_audio.c (but does not use
> AVFrame), the code in libswresample, and have read the docs (at least,
> whatever I could find).
> Maybe I should use swr_convert instead of swr_convert_frame and
> directly append the out samples to my vector?
>> Libav-user mailing list
>> Libav-user at ffmpeg.org
More information about the Libav-user