1. fps="24"; \
  2. > vid="screencast_${fps}fps"; \
  3. > crf="23"; \
  4. > preset="slower"; \
  5. > pushd /tmp/ && \
  6. > ffmpeg -y -f x11grab -show_region 1 -r ${fps} -s 1920x1080 -i :0.0+0,0 -an -c:v libx264 -preset ultrafast -qp 0 -threads 0 /dev/shm/${vid}.mp4 && \
  7. > ffmpeg -y -ss 00:00:02 -i /dev/shm/${vid}.mp4 -an -c:v libx264 -preset ${preset} -crf ${crf} -s 1920x1080 -s hd720 -sws_flags lanczos -threads 0 ~/${vid}_${crf}crf_${preset}_`date +%F_%H%M%S`.mp4 && \
  8. > popd && ls -l /dev/shm/${vid}*.mp4 && ls -l ~/${vid}*.mp4 && rm --interactive /dev/shm/${vid}*.mp4
  9. /tmp ~
  10. ffmpeg version 2.1 Copyright (c) 2000-2013 the FFmpeg developers
  11. built on Nov 12 2013 22:27:32 with gcc 4.7.3 (Gentoo 4.7.3-r1 p1.3, pie-0.5.5)
  12. configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-march=native -O2 -pipe' --extra-cflags='-march=native -O2 -pipe' --extra-cxxflags='-march=native -O2 -pipe' --disable-static --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --disable-stripping --enable-version3 --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-nonfree --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-hardcoded-tables --enable-iconv --enable-network --disable-openssl --enable-ffplay --disable-vaapi --enable-vdpau --enable-zlib --enable-libvo-aacenc --disable-libvo-amrwbenc --enable-libmp3lame --disable-libaacplus --disable-libfaac --enable-libtheora --disable-libtwolame --disable-libwavpack --enable-libx264 --enable-libxvid --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-libv4l2 --enable-libpulse --enable-x11grab --disable-libflite --enable-frei0r --enable-fontconfig --disable-ladspa --disable-libass --enable-libfreetype --disable-libsoxr --enable-pthreads --disable-libopencore-amrwb --disable-libopencore-amrnb --enable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --enable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --enable-libschroedinger --disable-libspeex --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-amd3dnow --disable-amd3dnowext --disable-altivec --disable-avx --disable-avx2 --disable-mmxext --disable-vis --disable-neon --cpu=host
  13. libavutil 52. 48.100 / 52. 48.100
  14. libavcodec 55. 39.100 / 55. 39.100
  15. libavformat 55. 19.104 / 55. 19.104
  16. libavdevice 55. 5.100 / 55. 5.100
  17. libavfilter 3. 90.100 / 3. 90.100
  18. libavresample 1. 1. 0 / 1. 1. 0
  19. libswscale 2. 5.101 / 2. 5.101
  20. libswresample 0. 17.104 / 0. 17.104
  21. libpostproc 52. 3.100 / 52. 3.100
  22. [x11grab @ 0x2647a80] device: :0.0+0,0 -> display: :0.0 x: 0 y: 0 width: 1920 height: 1080
  23. [x11grab @ 0x2647a80] shared memory extension found
  24. Input #0, x11grab, from ':0.0+0,0':
  25. Duration: N/A, start: 1384781806.563848, bitrate: 1592524 kb/s
  26. Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1920x1080, 1592524 kb/s, 24 tbr, 1000k tbn, 24 tbc
  27. [swscaler @ 0x2638940] deprecated pixel format used, make sure you did set range correctly
  28. No pixel format specified, yuv444p for H.264 encoding chosen.
  29. Use -pix_fmt yuv420p for compatibility with outdated media players.
  30. [libx264 @ 0x26665b0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
  31. [libx264 @ 0x26665b0] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
  32. [libx264 @ 0x26665b0] 64 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - 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=12 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=24 scenecut=0 intra_refresh=0 rc=cqp mbtree=0 qp=0
  33. Output #0, mp4, to '/dev/shm/screencast_24fps.mp4':
  34. Metadata:
  35. encoder : Lavf55.19.104
  36. Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 1920x1080, q=-1--1, 12288 tbn, 24 tbc
  37. Stream mapping:
  38. Stream #0:0 -> #0:0 (rawvideo -> libx264)
  39. Press [q] to stop, [?] for help
  40. frame= 564 fps= 11 q=-1.0 Lsize= 44879kB time=00:00:23.50 bitrate=15644.7kbits/s
  41. video:44875kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.008480%
  42. [libx264 @ 0x26665b0] frame I:3 Avg QP: 0.00 size:1098110
  43. [libx264 @ 0x26665b0] frame P:561 Avg QP: 0.00 size: 76039
  44. [libx264 @ 0x26665b0] mb I I16..4: 100.0% 0.0% 0.0%
  45. [libx264 @ 0x26665b0] mb P I16..4: 31.0% 0.0% 0.0% P16..4: 0.7% 0.0% 0.0% 0.0% 0.0% skip:68.3%
  46. [libx264 @ 0x26665b0] coded y,u,v intra: 12.9% 12.0% 12.1% inter: 0.7% 0.7% 0.7%
  47. [libx264 @ 0x26665b0] i16 v,h,dc,p: 90% 10% 0% 0%
  48. [libx264 @ 0x26665b0] kb/s:15643.23
  49. ffmpeg version 2.1 Copyright (c) 2000-2013 the FFmpeg developers
  50. built on Nov 12 2013 22:27:32 with gcc 4.7.3 (Gentoo 4.7.3-r1 p1.3, pie-0.5.5)
  51. configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-march=native -O2 -pipe' --extra-cflags='-march=native -O2 -pipe' --extra-cxxflags='-march=native -O2 -pipe' --disable-static --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --disable-stripping --enable-version3 --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-nonfree --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-hardcoded-tables --enable-iconv --enable-network --disable-openssl --enable-ffplay --disable-vaapi --enable-vdpau --enable-zlib --enable-libvo-aacenc --disable-libvo-amrwbenc --enable-libmp3lame --disable-libaacplus --disable-libfaac --enable-libtheora --disable-libtwolame --disable-libwavpack --enable-libx264 --enable-libxvid --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-libv4l2 --enable-libpulse --enable-x11grab --disable-libflite --enable-frei0r --enable-fontconfig --disable-ladspa --disable-libass --enable-libfreetype --disable-libsoxr --enable-pthreads --disable-libopencore-amrwb --disable-libopencore-amrnb --enable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --enable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --enable-libschroedinger --disable-libspeex --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-amd3dnow --disable-amd3dnowext --disable-altivec --disable-avx --disable-avx2 --disable-mmxext --disable-vis --disable-neon --cpu=host
  52. libavutil 52. 48.100 / 52. 48.100
  53. libavcodec 55. 39.100 / 55. 39.100
  54. libavformat 55. 19.104 / 55. 19.104
  55. libavdevice 55. 5.100 / 55. 5.100
  56. libavfilter 3. 90.100 / 3. 90.100
  57. libavresample 1. 1. 0 / 1. 1. 0
  58. libswscale 2. 5.101 / 2. 5.101
  59. libswresample 0. 17.104 / 0. 17.104
  60. libpostproc 52. 3.100 / 52. 3.100
  61. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/dev/shm/screencast_24fps.mp4':
  62. Metadata:
  63. major_brand : isom
  64. minor_version : 512
  65. compatible_brands: isomiso2avc1mp41
  66. encoder : Lavf55.19.104
  67. Duration: 00:00:23.50, start: 0.000000, bitrate: 15644 kb/s
  68. Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1920x1080, 15643 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
  69. Metadata:
  70. handler_name : VideoHandler
  71. No pixel format specified, yuv444p for H.264 encoding chosen.
  72. Use -pix_fmt yuv420p for compatibility with outdated media players.
  73. [libx264 @ 0x738120] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2
  74. [libx264 @ 0x738120] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
  75. [libx264 @ 0x738120] 264 - core 120 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=8 deblock=1:0:0 analyse=0x3:0x133 me=umh subme=9 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=2 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=12 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=2 b_bias=0 direct=3 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=60 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
  76. Output #0, mp4, to '/home/drslony/screencast_24fps_23crf_slower_2013-11-18_143737.mp4':
  77. Metadata:
  78. major_brand : isom
  79. minor_version : 512
  80. compatible_brands: isomiso2avc1mp41
  81. encoder : Lavf55.19.104
  82. Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 1280x720, q=-1--1, 12288 tbn, 24 tbc (default)
  83. Metadata:
  84. handler_name : VideoHandler
  85. Stream mapping:
  86. Stream #0:0 -> #0:0 (h264 -> libx264)
  87. Press [q] to stop, [?] for help
  88. frame= 516 fps= 10 q=-1.0 Lsize= 2971kB time=00:00:21.41 bitrate=1136.6kbits/s
  89. video:2966kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.183754%
  90. [libx264 @ 0x738120] frame I:3 Avg QP:19.16 size:108997
  91. [libx264 @ 0x738120] frame P:311 Avg QP:23.88 size: 7778
  92. [libx264 @ 0x738120] frame B:202 Avg QP:29.01 size: 1438
  93. [libx264 @ 0x738120] consecutive B-frames: 43.6% 8.5% 12.2% 35.7%
  94. [libx264 @ 0x738120] mb I I16..4: 34.4% 23.0% 42.6%
  95. [libx264 @ 0x738120] mb P I16..4: 1.5% 2.9% 2.3% P16..4: 4.2% 0.8% 0.8% 0.0% 0.0% skip:87.6%
  96. [libx264 @ 0x738120] mb B I16..4: 0.1% 0.5% 0.2% B16..8: 3.4% 0.4% 0.2% direct: 0.3% skip:94.9% L0:43.8% L1:53.9% BI: 2.4%
  97. [libx264 @ 0x738120] 8x8 transform intra:42.5% inter:51.3%
  98. [libx264 @ 0x738120] direct mvs spatial:95.5% temporal:4.5%
  99. [libx264 @ 0x738120] coded y,u,v intra: 60.1% 29.1% 30.5% inter: 1.6% 0.5% 0.5%
  100. [libx264 @ 0x738120] i16 v,h,dc,p: 47% 44% 6% 3%
  101. [libx264 @ 0x738120] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 23% 10% 6% 6% 7% 8% 7% 12%
  102. [libx264 @ 0x738120] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 34% 26% 7% 5% 5% 5% 5% 5% 8%
  103. [libx264 @ 0x738120] Weighted P-Frames: Y:0.0% UV:0.0%
  104. [libx264 @ 0x738120] ref P L0: 43.9% 12.3% 15.8% 8.9% 5.5% 4.9% 4.5% 2.1% 2.0%
  105. [libx264 @ 0x738120] ref B L0: 78.8% 8.2% 5.8% 1.9% 1.3% 2.7% 1.3%
  106. [libx264 @ 0x738120] ref B L1: 89.1% 10.9%
  107. [libx264 @ 0x738120] kb/s:1129.87
  108. ~
  109. -rw-r--r-- 1 drslony drslony 45956410 Nov 18 14:37 /dev/shm/screencast_24fps.mp4
  110. -rw-r--r-- 1 drslony drslony 3042794 Nov 18 14:38 /home/drslony/screencast_24fps_23crf_slower_2013-11-18_143737.mp4
  111. rm: remove regular file ‘/dev/shm/screencast_24fps.mp4’? n
  112. drslony@overkill ~ $ ffplay screencast_24fps_23crf_slower_2013-11-18_143737.mp4
  113. ffplay version 2.1 Copyright (c) 2003-2013 the FFmpeg developers
  114. built on Nov 12 2013 22:27:32 with gcc 4.7.3 (Gentoo 4.7.3-r1 p1.3, pie-0.5.5)
  115. configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-march=native -O2 -pipe' --extra-cflags='-march=native -O2 -pipe' --extra-cxxflags='-march=native -O2 -pipe' --disable-static --enable-gpl --enable-postproc --enable-avfilter --enable-avresample --disable-stripping --enable-version3 --disable-indev=oss --disable-indev=jack --disable-outdev=oss --enable-nonfree --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-hardcoded-tables --enable-iconv --enable-network --disable-openssl --enable-ffplay --disable-vaapi --enable-vdpau --enable-zlib --enable-libvo-aacenc --disable-libvo-amrwbenc --enable-libmp3lame --disable-libaacplus --disable-libfaac --enable-libtheora --disable-libtwolame --disable-libwavpack --enable-libx264 --enable-libxvid --disable-libcdio --disable-libiec61883 --disable-libdc1394 --disable-libcaca --disable-openal --disable-libv4l2 --enable-libpulse --enable-x11grab --disable-libflite --enable-frei0r --enable-fontconfig --disable-ladspa --disable-libass --enable-libfreetype --disable-libsoxr --enable-pthreads --disable-libopencore-amrwb --disable-libopencore-amrnb --enable-libfdk-aac --disable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --enable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --enable-libschroedinger --disable-libspeex --enable-libvorbis --disable-libvpx --disable-libzvbi --disable-amd3dnow --disable-amd3dnowext --disable-altivec --disable-avx --disable-avx2 --disable-mmxext --disable-vis --disable-neon --cpu=host
  116. libavutil 52. 48.100 / 52. 48.100
  117. libavcodec 55. 39.100 / 55. 39.100
  118. libavformat 55. 19.104 / 55. 19.104
  119. libavdevice 55. 5.100 / 55. 5.100
  120. libavfilter 3. 90.100 / 3. 90.100
  121. libavresample 1. 1. 0 / 1. 1. 0
  122. libswscale 2. 5.101 / 2. 5.101
  123. libswresample 0. 17.104 / 0. 17.104
  124. libpostproc 52. 3.100 / 52. 3.100
  125. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'screencast_24fps_23crf_slower_2013-11-18_143737.mp4':
  126. Metadata:
  127. major_brand : isom
  128. minor_version : 512
  129. compatible_brands: isomiso2avc1mp41
  130. encoder : Lavf55.19.104
  131. Duration: 00:00:21.50, start: 0.000000, bitrate: 1132 kb/s
  132. Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1280x720, 1130 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)
  133. Metadata:
  134. handler_name : VideoHandler
  135. 12.09 M-V: -0.031 fd= 383 aq= 0KB vq= 1KB sq= 0B f=0/0