[FFmpeg-user] Desktop capturing with acodec pcm_s16le results in wobbly audio

Oliver olivermd at gmx.net
Sat Sep 5 00:00:00 CEST 2015

i am experimenting with desktop video/audio capturing this is the
command i used:

ffmpeg -f alsa -ac 2 -i default -f x11grab -r 30 -s 1920x1200 -i
:0.0+1680,0 -acodec pcm_s16le -vcodec libx264 -preset ultrafast -crf 0
-threads 0 testout.mkv

this kind of worked but the audio in the resulting video file had a
distinct wobble effect, similar to slow motion. I could not notice any
effects on the video.

The output of the above command was:

No pixel format specified, yuv444p for H.264 encoding chosen.
Use -pix_fmt yuv420p for compatibility with outdated media players.

[libx264 @ 0x19e8a20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x19e8a20] profile High 4:4:4 Predictive, level 5.0, 4:4:4 8-bit
[libx264 @ 0x19e8a20] 64 - core 148 - H.264/MPEG-4 AVC codec - Copyleft
2003-2015 - http://www.videolan.org/x264.html - options: cabac=0 ref=1
deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=0 mixed_ref=0 me_range=16
chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=0
chroma_qp_offset=0 threads=18 lookahead_threads=3 sliced_threads=0 nr=0
decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0
weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=cqp
mbtree=0 qp=0
Output #0, matroska, to 'testout.mkv':
    encoder         : Lavf56.36.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv444p,
1920x1200, q=-1--1, 30 fps, 1k tbn, 30 tbc
      encoder         : Lavc56.41.100 libx264
    Stream #0:1: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz,
stereo, s16, 1536 kb/s
      encoder         : Lavc56.41.100 pcm_s16le
Stream mapping:
  Stream #1:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
  Stream #0:0 -> #0:1 (pcm_s16le (native) -> pcm_s16le (native))
Press [q] to stop, [?] for help
[x11grab @ 0x19df400] Thread message queue blocking; consider raising
the thread_queue_size option (current value: 8)
[alsa @ 0x19c8a00] Thread message queue blocking; consider raising the
thread_queue_size option (current value: 8)
frame= 1583 fps= 32 q=-1.0 Lsize=   78427kB time=00:00:52.76
video:68375kB audio:9772kB subtitle:0kB other streams:0kB global
headers:0kB muxing overhead: 0.357776%
[libx264 @ 0x19e8a20] frame I:7     Avg QP: 0.00  size:1380498
[libx264 @ 0x19e8a20] frame P:1576  Avg QP: 0.00  size: 38294
[libx264 @ 0x19e8a20] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 0x19e8a20] mb P  I16..4: 25.2%  0.0%  0.0%  P16..4:  1.4%
0.0%  0.0%  0.0%  0.0%    skip:73.4%
[libx264 @ 0x19e8a20] coded y,u,v intra: 7.9% 5.9% 6.3% inter: 1.6% 1.2%
[libx264 @ 0x19e8a20] i16 v,h,dc,p: 93%  6%  0%  0%
[libx264 @ 0x19e8a20] kb/s:10615.04
Received signal 2: terminating.

After that i tried the same command with just 15 fps (using the option
-r 15 instead of -r 30) but this had the same effect.
Another thing i tried was using: -acodec libvorbis instead ob pcm_s16le
and this finally worked but i am not sure what are the downsides of this
and additionally using libvorbis gives me about 50 warnings:

[matroska @ 0x176b3c0] Non-monotonous DTS in output stream 0:1;
previous: 0, current: -1822; changing to 0. This may result in incorrect
timestamps in the output file.

I do not know what this means, does this indicated that there are
problems keeping video and audio synchronous?

Does anyone has an idea?

More information about the ffmpeg-user mailing list