从udp流捕获屏幕截图的最佳方法是什么



我正在尝试在 Ubuntu 14.04 系统中使用 ffmpeg 从 udp 流中捕获屏幕截图。以下是命令

ffmpeg -y -i udp_ip -vframes 1 -q:v 1 test.png

但是捕获的图像分辨率非常差,我在截屏时观察到滞后。

请建议一种最佳工具或以最快的方式截取屏幕截图的方法,以及尽可能最佳的图像分辨率。

编辑:日志文件

ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --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-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[mpeg2video @ 0x390cc60] Invalid frame dimensions 0x0.
    Last message repeated 7 times
Input #0, mpegts, from 'udp://@xxx.xx.xx.xx:xxxx':
  Duration: N/A, start: 144.130744, bitrate: 4128 kb/s
  Program 1 
    Metadata:
      service_name    : Program-1   
      service_provider: Encoder 
    Stream #0:0[0x42]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv, top first), 720x576 [SAR 16:15 DAR 4:3], 4000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x43]: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg2video (native) -> png (native))
Press [q] to stop, [?] for help
Output #0, image2, to 'player.png':
  Metadata:
    encoder         : Lavf57.71.100
    Stream #0:0: Video: png, rgb24, 720x576 [SAR 16:15 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.89.100 png
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A dup=1 drop=1 speed=0.729x    
video:777kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

因为,这似乎是纵横比的问题,而不是质量本身,使用

ffmpeg -y -i udp_ip -vf scale=iw*sar:ih,setsar=1 -vframes 1 -q:v 1 test.png
缩放

筛选器将视频重新缩放为方形像素。SAR 过滤器不是绝对必要的,但如果 PNG 复用器写入该数据,最好重置它。

相关内容

最新更新