ffmpeg-tutorial icon indicating copy to clipboard operation
ffmpeg-tutorial copied to clipboard

Audio not working

Open mrglobal opened this issue 11 years ago • 20 comments

Used your latest. Video works fine but Audio is scratchy and high pitched. Can you provide any guidance on this ?

Thanks

Sean

mrglobal avatar Feb 09 '14 01:02 mrglobal

Can you give more details? Which tutorial, using which movie, what platform? tutorial06 and tutorial07 work fine for me...

mattip avatar Feb 15 '14 17:02 mattip

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

solarstrings avatar Feb 21 '14 16:02 solarstrings

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings [email protected]:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622 .

mrglobal avatar Feb 22 '14 00:02 mrglobal

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings <[email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584 .

mpenkov avatar Feb 22 '14 09:02 mpenkov

Sorry for delay in reply

04 on windows using MSVC2010 does not work for me (I just used the latest code).

tut05 does not compile

Error 5 error C2440: '=' : cannot convert from 'int (__cdecl *)(AVCodecContext *,AVFrame *)' to 'int (__cdecl *)(AVCodecContext *,AVFrame *,int)' c:\users\seanyiu\ffmpeg\ffmpeg_tutorials\test5 - copy\test5\test5.cpp 662 1 test5

Line is : codecCtx->get_buffer2 = our_get_buffer;

get_buffer2 has 3 arguments to our_get_buffer's 2 arguments.

Be that as it may, I don't think 05 would work too (07 does not also). Something more fundamental is happening here. Has any one gotten 04 or any of the tutorials working on Windows ? What might be the problem ?

By the way, I use :

"#define rint ceil" as there is no rint in MSVC2010

Thanks

Sean

On Sat, Feb 22, 2014 at 1:46 AM, Michael Penkov [email protected]:

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings <[email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35798939 .

mrglobal avatar Mar 07 '14 01:03 mrglobal

Which version of ffmeg are you using? On Mar 7, 2014 10:49 AM, "mrglobal" [email protected] wrote:

Sorry for delay in reply

04 on windows using MSVC2010 does not work for me (I just used the latest code).

tut05 does not compile

Error 5 error C2440: '=' : cannot convert from 'int (__cdecl *)(AVCodecContext *,AVFrame *)' to 'int (__cdecl *)(AVCodecContext *,AVFrame *,int)' c:\users\seanyiu\ffmpeg\ffmpeg_tutorials\test5 - copy\test5\test5.cpp 662 1 test5

Line is : codecCtx->get_buffer2 = our_get_buffer;

get_buffer2 has 3 arguments to our_get_buffer's 2 arguments.

Be that as it may, I don't think 05 would work too (07 does not also). Something more fundamental is happening here. Has any one gotten 04 or any of the tutorials working on Windows ? What might be the problem ?

By the way, I use :

"#define rint ceil" as there is no rint in MSVC2010

Thanks

Sean

On Sat, Feb 22, 2014 at 1:46 AM, Michael Penkov <[email protected]

wrote:

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings < [email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584

.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35798939

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36960144 .

mpenkov avatar Mar 07 '14 02:03 mpenkov

Zeranoe's

ffmpeg-20130706-git-63d7684-win32-dev

Sean

On Thu, Mar 6, 2014 at 6:33 PM, Michael Penkov [email protected]:

Which version of ffmeg are you using?

On Mar 7, 2014 10:49 AM, "mrglobal" [email protected] wrote:

Sorry for delay in reply

04 on windows using MSVC2010 does not work for me (I just used the latest code).

tut05 does not compile

Error 5 error C2440: '=' : cannot convert from 'int (__cdecl *)(AVCodecContext *,AVFrame *)' to 'int (__cdecl *)(AVCodecContext *,AVFrame *,int)' c:\users\seanyiu\ffmpeg\ffmpeg_tutorials\test5 - copy\test5\test5.cpp 662 1 test5

Line is : codecCtx->get_buffer2 = our_get_buffer;

get_buffer2 has 3 arguments to our_get_buffer's 2 arguments.

Be that as it may, I don't think 05 would work too (07 does not also). Something more fundamental is happening here. Has any one gotten 04 or any of the tutorials working on Windows ? What might be the problem ?

By the way, I use :

"#define rint ceil" as there is no rint in MSVC2010

Thanks

Sean

On Sat, Feb 22, 2014 at 1:46 AM, Michael Penkov < [email protected]

wrote:

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings < [email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35798939

.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36960144

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36962444 .

mrglobal avatar Mar 07 '14 03:03 mrglobal

That looks a bit old. It could be a version compatibility issue. Could you try a newer ffmpeg version? Alternatively, try an older version of the tutorials. On Mar 7, 2014 12:35 PM, "mrglobal" [email protected] wrote:

Zeranoe's

ffmpeg-20130706-git-63d7684-win32-dev

Sean

On Thu, Mar 6, 2014 at 6:33 PM, Michael Penkov <[email protected]

wrote:

Which version of ffmeg are you using?

On Mar 7, 2014 10:49 AM, "mrglobal" [email protected] wrote:

Sorry for delay in reply

04 on windows using MSVC2010 does not work for me (I just used the latest code).

tut05 does not compile

Error 5 error C2440: '=' : cannot convert from 'int (__cdecl *)(AVCodecContext *,AVFrame *)' to 'int (__cdecl *)(AVCodecContext *,AVFrame *,int)' c:\users\seanyiu\ffmpeg\ffmpeg_tutorials\test5 - copy\test5\test5.cpp 662 1 test5

Line is : codecCtx->get_buffer2 = our_get_buffer;

get_buffer2 has 3 arguments to our_get_buffer's 2 arguments.

Be that as it may, I don't think 05 would work too (07 does not also). Something more fundamental is happening here. Has any one gotten 04 or any of the tutorials working on Windows ? What might be the problem ?

By the way, I use :

"#define rint ceil" as there is no rint in MSVC2010

Thanks

Sean

On Sat, Feb 22, 2014 at 1:46 AM, Michael Penkov < [email protected]

wrote:

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings < [email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35798939

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36960144

.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36962444

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36965209 .

mpenkov avatar Mar 07 '14 03:03 mpenkov

@mpenkov The issue is also happening here. All examples output a high pitched audio.

edufelipe$ ./test7 ~/video.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ' ~/video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2014-03-07 06:04:42
  Duration: 00:21:24.86, start: 0.000000, bitrate: 1050 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 720x404, 918 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2014-03-07 05:46:53
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2014-03-07 06:04:42

My ffmpeg:

ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar  2 2014 13:38:24 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100

edufelipe avatar Mar 10 '14 19:03 edufelipe

I had been using an earlier version of FFMPEG and kept moving to latest. Granted it's a year dated now but I suspect it is in latest also.

Sean

On Thu, Mar 6, 2014 at 7:56 PM, Michael Penkov [email protected]:

That looks a bit old. It could be a version compatibility issue. Could you try a newer ffmpeg version? Alternatively, try an older version of the tutorials.

On Mar 7, 2014 12:35 PM, "mrglobal" [email protected] wrote:

Zeranoe's

ffmpeg-20130706-git-63d7684-win32-dev

Sean

On Thu, Mar 6, 2014 at 6:33 PM, Michael Penkov <[email protected]

wrote:

Which version of ffmeg are you using?

On Mar 7, 2014 10:49 AM, "mrglobal" [email protected] wrote:

Sorry for delay in reply

04 on windows using MSVC2010 does not work for me (I just used the latest code).

tut05 does not compile

Error 5 error C2440: '=' : cannot convert from 'int (__cdecl *)(AVCodecContext *,AVFrame *)' to 'int (__cdecl *)(AVCodecContext *,AVFrame *,int)' c:\users\seanyiu\ffmpeg\ffmpeg_tutorials\test5 - copy\test5\test5.cpp 662 1 test5

Line is : codecCtx->get_buffer2 = our_get_buffer;

get_buffer2 has 3 arguments to our_get_buffer's 2 arguments.

Be that as it may, I don't think 05 would work too (07 does not also). Something more fundamental is happening here. Has any one gotten 04 or any of the tutorials working on Windows ? What might be the problem ?

By the way, I use :

"#define rint ceil" as there is no rint in MSVC2010

Thanks

Sean

On Sat, Feb 22, 2014 at 1:46 AM, Michael Penkov < [email protected]

wrote:

What about tutorials 5 and 6? Do they work?

On 22 February 2014 09:19, mrglobal [email protected] wrote:

Same for me for Tutorial 07 and 04.

Sean

On Fri, Feb 21, 2014 at 8:56 AM, solarstrings < [email protected]

wrote:

Tutorial 07 sound is distorted on most video files downloaded from YouTube. Those encoded with mp3 audio seems to work though.

The sound plays ok in linux, but in Windows the sound plays distorted.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35749622

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35787584

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-35798939

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36960144

.

Reply to this email directly or view it on GitHub<

https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36962444

.

Reply to this email directly or view it on GitHub< https://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36965209

.

Reply to this email directly or view it on GitHubhttps://github.com/chelyaev/ffmpeg-tutorial/issues/20#issuecomment-36966048 .

mrglobal avatar Mar 10 '14 23:03 mrglobal

@edufelipe Can you provide a sample video that people can use to reproduce this behavior?

mpenkov avatar Mar 11 '14 08:03 mpenkov

I've debugged it a bit, and it looks like only stereo audio is affected. For some reason avcoded_decode_audio4() puts garbage in 2nd half of the buffer for files with stereo audio.

Use this youtube video (download it with youtube-dl) as a sample: https://www.youtube.com/watch?v=FKJXtXvl-HQ

anarsoul avatar Jun 05 '14 21:06 anarsoul

On 2nd thought it looks like smaller buffer is allocated somewhere in ffmpeg internals for frame->data[0]. Insert a memset(frame.data[0], 0, data_size) after memcpy() in audio_decode_frame() and you'll get a segfault.

anarsoul avatar Jun 05 '14 21:06 anarsoul

Got it: code can't deal neither with planar audio formats nor with sample format mismatch.

anarsoul avatar Jun 06 '14 09:06 anarsoul

@chelyaev i got the same high pitch problem. @edufelipe was your problem solved?

my output is :

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/hemant/Videos/Burn.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2014-11-28 15:25:11 Duration: 00:03:58.12, start: 0.000000, bitrate: 1589 kb/s Stream #0.0(und): Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 1395 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc Stream #0.1(und): Audio: aac, 44100 Hz, stereo, fltp, 191 kb/s Metadata: creation_time : 2014-11-28 15:25:13

my ffmpeg version is :

ffmpeg version 2.6.3 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvo-aacenc --enable-libvidstab libavutil 54. 20.100 / 54. 20.100 libavcodec 56. 26.100 / 56. 26.100 libavformat 56. 25.101 / 56. 25.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 11.102 / 5. 11.102 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100

Aman5692 avatar Jun 11 '15 14:06 Aman5692

@Aman5692, have you resolved the audio problem? I've the same problem with the audio.

My ffmpeg version is:

ffmpeg version N-73365-g72cad80 Copyright (c) 2000-2015 the FFmpeg developers built with Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) configuration: --enable-libmp3lame --enable-shared --disable-mmx --enable-libfaac --enable-nonfree --enable-demuxer=mov libavutil 54. 27.100 / 54. 27.100 libavcodec 56. 46.100 / 56. 46.100 libavformat 56. 40.100 / 56. 40.100 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 19.100 / 5. 19.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.100 / 1. 2.100

fugokidi avatar Aug 18 '15 10:08 fugokidi

@fugokidi see https://github.com/anarsoul/libffplay

anarsoul avatar Aug 18 '15 15:08 anarsoul

@anarsoul Thank you very much. I shall go through yours. Well, your library is a little bit big for me. I'm still in tutorial03. My goal is I'm trying to understand synchronisation part practically in details. I'm stuck at tutorial03 for now.

I tried @pprahul (his fix) is to change sample format.

if (aCodecCtx->sample_fmt == AV_SAMPLE_FMT_S16P) {
        aCodecCtx->request_sample_fmt = AV_SAMPLE_FMT_S16;
    }

It works for mp2 audio even though it is stereo channel. But it doesn't work for aac audio, it's giving me the sound like radio tuning.

@anarsoul Can you please guide me a bit of how I can fix tutorial03 to work with h264+aac in mp4 container?

fugokidi avatar Aug 18 '15 15:08 fugokidi

Was able to play a mp4 video with audio whose codecs appear below. Based on http://dranger.com/ffmpeg/ and updates from https://github.com/illuusio/ffmpeg-tutorial, it runs Windows x64, Visual Studio 2015, SDL2, ffmpeg 4.0 and C++.

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from ‘crawl.mp4’: Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 creation_time : 1970-01-01T00:00:00.000000Z Duration: 00:00:29.00, start: 0.000000, bitrate: 689 kb/s Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1344x680, 612 kb/s, 10 fps, 10 tbr, 10 tbn, 20 tbc (default) Metadata: creation_time : 1970-01-01T00:00:00.000000Z handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 75 kb/s (default) Metadata: creation_time : 1970-01-01T00:00:00.000000Z handler_name : SoundHandler screen final size: 1344x680

MilaCridlig avatar Jul 10 '18 19:07 MilaCridlig

@MilaCridlig it seems that is expected since you used mono audio. From this comment above it is related to stereo audio

mattip avatar Jul 10 '18 22:07 mattip