On 08/11/16 12:17, 肖文良 wrote: > Built from the latest git source seems not help. > > following command runs about 15+ seconds. nothing was captured. If I add > -loglevel debug, this log keep being printed: > > cur_dts is invalid (this is harmless if it occurs once at the start per > stream) > [rawvideo @ 0x3234840] PACKET SIZE: 4196352, STRIDE: 5464 > > Here is the whole command line and output: > > ➜ ffmpeg git:(master) ✗ ./ffmpeg -s 1366x768 -f x11grab -i :0.0 -c libx264 > -crf 28 -preset ultrafast /tmp/output.mp4 > ffmpeg version N-82294-g6f0a171 Copyright (c) 2000-2016 the FFmpeg developers > built with gcc 4.9.2 (Debian 4.9.2-10) > configuration: --disable-yasm --enable-x11grab --enable-gpl --enable-libx264 > libavutil 55. 35.100 / 55. 35.100 > libavcodec 57. 66.101 / 57. 66.101 > libavformat 57. 57.100 / 57. 57.100 > libavdevice 57. 2.100 / 57. 2.100 > libavfilter 6. 66.100 / 6. 66.100 > libswscale 4. 3.100 / 4. 3.100 > libswresample 2. 4.100 / 2. 4.100 > libpostproc 54. 2.100 / 54. 2.100
There is something strange going on here. I can reproduce the problem precisely by using the ffmpeg package in debian testing, which is close to a vanilla build of 3.2: $ /usr/bin/ffmpeg -y -f x11grab -i :0 out.mp4 ffmpeg version 3.2-2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 6.2.0 (Debian 6.2.0-10) 20161027 configuration: --prefix=/usr --extra-version=2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-libtesseract --disable-stripping --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librubberband --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-opengl --enable-sdl2 --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-openal --enable-frei0r --enable-libopencv --enable-libx264 --enable-chromaprint --enable-shared libavutil 55. 34.100 / 55. 34.100 libavcodec 57. 64.100 / 57. 64.100 libavformat 57. 56.100 / 57. 56.100 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libavresample 3. 1. 0 / 3. 1. 0 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 But I can't reproduce it at all if I build myself (either git head or the tip of the 3.2 branch). The 3.2 here really should pretty much identical to the Debian build: $ ./ffmpeg -y -f x11grab -i :0 out.mp4 ffmpeg version n3.2-3-g7568b0f Copyright (c) 2000-2016 the FFmpeg developers built with gcc 6.2.0 (Debian 6.2.0-10) 20161027 configuration: --enable-libx264 --enable-gpl --enable-x11grab libavutil 55. 34.100 / 55. 34.100 libavcodec 57. 64.100 / 57. 64.100 libavformat 57. 56.100 / 57. 56.100 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 The problem with the Debian version is that the timestamps are messed up somehow - I can work around it there by giving both the -framerate and -r options: /usr/bin/ffmpeg -y -framerate 30 -r 30 -f x11grab -i :0 out.mp4 at which point it produces the same result as the 3.2 I built myself. So, I downloaded the source for exactly the debian version from https://packages.debian.org/stretch/ffmpeg, applied their patches and built it myself: $ ./ffmpeg -y -f x11grab -i :0 out.mp4 ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers built with gcc 6.2.0 (Debian 6.2.0-10) 20161027 configuration: --enable-libx264 --enable-gpl --enable-x11grab libavutil 55. 34.100 / 55. 34.100 libavcodec 57. 64.100 / 57. 64.100 libavformat 57. 56.100 / 57. 56.100 libavdevice 57. 1.100 / 57. 1.100 libavfilter 6. 65.100 / 6. 65.100 libswscale 4. 2.100 / 4. 2.100 libswresample 2. 3.100 / 2. 3.100 libpostproc 54. 1.100 / 54. 1.100 This also works perfectly. So, I'm left with the Debian binary being somehow broken, while mine built from supposedly the same source (with the same compiler, but not with the same options) is not? You say that you can reproduce it with a version built from git - can you offer anything more about your setup which might be relevant to this issue? While the Debian build does set many options, I don't see how any of them can plausibly be of relevance here. Thanks, - Mark _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".