Запись рабочего стола с помощью gdigrab ffmeg в файл mp4 со слишком высоким video_size не работает

Я пытаюсь записать свой рабочий стол с помощью ffmpeg, используя команду:

ffmpeg -f gdigrab -framerate 10 -video_size 1920x1200 -i desktop -pix_fmt yuv420p -vcodec libx264 -preset ultrafast output.mp4

Проблема в том, что когда опция video_size больше некоторого размера (например, высота выше 1089), видео не может быть прочитано с помощью Windows Media. Я заметил, что при таком большом размере записываемое видео не имеет информации о размере. Я не понимаю, почему запись не работает с слишком большим размером. Если кто-нибудь может мне помочь. Большое спасибо и очень извиняюсь за мой английский.

[редактировать]

    ffmpeg version N-78758-g5156578 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 27.100 / 57. 27.100
  libavformat    57. 26.100 / 57. 26.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 37.100 /  6. 37.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[gdigrab @ 00861860] Capturing whole desktop as 1920x1200x16 at (0,0)
Input #0, gdigrab, from 'desktop':
  Duration: N/A, start: 1467631308.011542, bitrate: 368644 kb/s
    Stream #0:0: Video: bmp, rgb555le, 1920x1200, 368644 kb/s, 10 tbr, 1000k tbn, 10 tbc
[libx264 @ 00863fe0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 00863fe0] profile Constrained Baseline, level 5.0
[libx264 @ 00863fe0] 264 - core 148 r2665 a01e339 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=10 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
Output #0, mp4, to 'output.mp4':
  Metadata:
    encoder         : Lavf57.26.100
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1200, q=-1--1, 10 fps, 10240 tbn, 10 tbc
    Metadata:
      encoder         : Lavc57.27.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (bmp (native) -> h264 (libx264))
Press [q] to stop, [?] for help
frame=    6 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x    
frame=   11 fps= 11 q=10.0 size=     277kB time=00:00:00.40 bitrate=5664.4kbits/s speed=0.396x    
frame=   16 fps= 11 q=9.0 size=     393kB time=00:00:00.90 bitrate=3578.8kbits/s speed=0.595x    
frame=   21 fps= 10 q=9.0 size=     429kB time=00:00:01.40 bitrate=2507.4kbits/s speed=0.695x    
frame=   26 fps= 10 q=9.0 size=     429kB time=00:00:01.90 bitrate=1849.3kbits/s speed=0.754x    
frame=   31 fps= 10 q=18.0 size=     430kB time=00:00:02.40 bitrate=1466.1kbits/s speed=0.793x    
frame=   36 fps= 10 q=10.0 size=     511kB time=00:00:02.90 bitrate=1442.6kbits/s speed=0.823x    
frame=   41 fps= 10 q=10.0 size=     562kB time=00:00:03.40 bitrate=1353.0kbits/s speed=0.844x    
frame=   46 fps= 10 q=10.0 size=     565kB time=00:00:03.90 bitrate=1185.9kbits/s speed=0.861x    
frame=   51 fps= 10 q=9.0 size=     575kB time=00:00:04.40 bitrate=1070.8kbits/s speed=0.874x    
frame=   56 fps= 10 q=12.0 size=     582kB time=00:00:04.90 bitrate= 972.3kbits/s speed=0.885x    
frame=   61 fps= 10 q=10.0 size=     598kB time=00:00:05.40 bitrate= 907.7kbits/s speed=0.893x    
frame=   66 fps= 10 q=10.0 size=     601kB time=00:00:05.90 bitrate= 834.5kbits/s speed=0.901x    
frame=   71 fps= 10 q=10.0 size=     603kB time=00:00:06.40 bitrate= 772.3kbits/s speed=0.907x    
frame=   76 fps= 10 q=12.0 size=     606kB time=00:00:06.90 bitrate= 719.8kbits/s speed=0.913x    
frame=   81 fps= 10 q=10.0 size=     625kB time=00:00:07.40 bitrate= 691.8kbits/s speed=0.917x    
frame=   86 fps= 10 q=10.0 size=     629kB time=00:00:07.90 bitrate= 652.2kbits/s speed=0.922x    
frame=   91 fps= 10 q=12.0 size=     634kB time=00:00:08.40 bitrate= 618.2kbits/s speed=0.926x    
frame=   97 fps= 10 q=10.0 size=     757kB time=00:00:09.00 bitrate= 689.3kbits/s speed=0.94x    
frame=  100 fps= 10 q=-1.0 Lsize=     772kB time=00:00:10.00 bitrate= 632.8kbits/s speed=0.998x    
video:771kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.153975%
[libx264 @ 00863fe0] frame I:1     Avg QP:20.00  size:242961
[libx264 @ 00863fe0] frame P:99    Avg QP:10.67  size:  5517
[libx264 @ 00863fe0] mb I  I16..4: 100.0%  0.0%  0.0%
[libx264 @ 00863fe0] mb P  I16..4:  0.8%  0.0%  0.0%  P16..4:  2.9%  0.0%  0.0%  0.0%  0.0%    skip:96.3%
[libx264 @ 00863fe0] coded y,uvDC,uvAC intra: 23.6% 15.1% 13.9% inter: 1.2% 1.3% 0.8%
[libx264 @ 00863fe0] i16 v,h,dc,p: 65% 33%  1%  1%
[libx264 @ 00863fe0] i8c dc,h,v,p: 61% 25% 13%  0%
[libx264 @ 00863fe0] kb/s:631.31

1 ответ

Этот код будет работать на экране записи пакетного файла и аудио (рабочий стол):

      set Filename=%DATE:~0,2%%DATE:~3,2%%DATE:~6,4%_%time:~0,2%_%time:~3,2%_%time:~6,2%
ffmpeg -f dshow -i audio="virtual-audio-capturer" -y -rtbufsize 100M -f gdigrab  -i desktop -t 00:00:30 -framerate 30 -probesize 10M -draw_mouse 1 -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" output-%Filename%.mp4

И из определенных окон (щелкните вверху окна и дайте ему имя):

      set Filename=%DATE:~0,2%%DATE:~3,2%%DATE:~6,4%_%time:~0,2%_%time:~3,2%_%time:~6,2%    
ffmpeg -f dshow -i audio="virtual-audio-capturer" -y -rtbufsize 100M -f gdigrab  -i title=WindowName -t 00:00:30 -framerate 30 -probesize 10M -draw_mouse 1 -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -crf 25 -pix_fmt yuv420p -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" output-%Filename%.mp4
Другие вопросы по тегам