[Libav-user] How to transcode mp3 file to G.711 encoded wav file

Robert Smith wmk587 at yahoo.com
Wed Dec 8 21:20:59 EET 2021


 Dumped raw data to binary file, opened it in Audacity, found correct sampling rate and correctly played audio clip.
I noticed that Audacity shows "32 bit float", as you mentioned in your previous E-mail that could be the reason why transcoding to uLaw fails.

Could you clarify what is proper way to resolve the issue? Should I correct decoding? Thanks
    On Wednesday, December 8, 2021, 12:41:41 PM EST, Bob Kirnum <bkirnum at gmail.com> wrote:  
 
 To verify the decoded audio from the MP3 I would simply write the decoded frames to file (fwrite or similar to a binary file).  The resulting file is a raw PCM file which can be imported with Audacity.  You specify the sample rate, sample format (i.e. 16 bit integer or 32 bit float), etc.  When you get the right settings the audio should play good.
On Wed, Dec 8, 2021 at 12:01 PM Robert Smith via Libav-user <libav-user at ffmpeg.org> wrote:

 Hi,

Thank you for your response. All my attempts to sort it out failed so far. Could you clarify how can I verify that I decoded the MP3 to linear PCM properly?

I mean as result of decoding I'm getting frames:
avcodec_decode_audio4(pMp3CodecCtx, frame, &gotFrame, &packet)

So what is next? Write frame to wav file? How? The function av_interleaved_write_frame despite its name accept packets not a frames?

How to check validity of wav container? I usually run  "ffprobe -i Output.wav" to see details. Is there other way? Thanks
    On Monday, December 6, 2021, 11:43:17 AM EST, Bob Kirnum <bkirnum at gmail.com> wrote:  
 
 Perhaps the AV_SAMPLE_FMT_S16 is referring to the sample format input to the G.711 uLaw encoder (input should be 16 bit linear PCM)?  Then this would be correct.  Perhaps split the effort and verify that you can decode the MP3 to linear PCM properly, and encode linear to uLaw properly for WAV separately?  Using the wrong sample rate (not downsampling to 8 kHz) would not result in noise (what you reported), would just result in the wrong audio speed.  One additional thought, does decoding the MP3 result in 16 bit integer linear PCM or 32 bit float PCM?  If float, that would be a mismatch and result in noise when encoding to uLaw.
On Mon, Dec 6, 2021 at 10:40 AM Robert Smith via Libav-user <libav-user at ffmpeg.org> wrote:

 If I change

pCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16;

to

pCodecCtx->sample_fmt = AV_SAMPLE_FMT_U8;

Then I get the following error:

[pcm_mulaw @ 0x2d33450] Specified sample_fmt is not supported.

Any idea? Thanks
    On Friday, December 3, 2021, 06:15:54 PM EST, Bob Kirnum <bkirnum at gmail.com> wrote:  
 
 G.711 is 8 bits, could be an issue. Also, not sure if you need to downsample to 8kHz manually or not. 

> On Dec 3, 2021, at 5:36 PM, Robert Smith via Libav-user <libav-user at ffmpeg.org> wrote:
> 
> pCodecCtx->sample_fmt = AV_SAMPLE_FMT_S16;
_______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-request at ffmpeg.org with subject "unsubscribe".
  _______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-request at ffmpeg.org with subject "unsubscribe".

_______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-request at ffmpeg.org with subject "unsubscribe".
  _______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-request at ffmpeg.org with subject "unsubscribe".

_______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/libav-user

To unsubscribe, visit link above, or email
libav-user-request at ffmpeg.org with subject "unsubscribe".
  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20211208/489e6dda/attachment.htm>


More information about the Libav-user mailing list