2017-11-08 17 views
0

私はUbuntu 14.04システムでffmpegを使ってudpストリームからスクリーンショットをキャプチャしようとしています。続き は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 
+1

PNGはロスレスである必要があります。品質の低下はありません。完全なログを共有する。 – Mulvya

+0

ありがとう@Mulvya ... logs.Butはffmpegロスレス画像をキャプチャする最速の方法ですか、私は他のツールも同様に考えることができますか? – yash17

+0

と思われます。あなたはアスペクト比を指していますか? – Mulvya

答えて

1

、これはそれ自体が、アスペクト比の問題ではなく、品質のようですので、スケールのフィルタが再スケール

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

を使用ビデオを正方形のピクセルに変換します。 SARフィルタは厳密には必要ではありませんが、PNGマルチプレクサがそのデータを書き込む場合は、リセットすることをお勧めします。

+0

ありがとう...私はこれを試してみましょう。スクリーンショットを高速にキャプチャする方法はありますか?画面をキャプチャするのに数秒かかるので、コード内のすべてのスクリプトで複数の場所でスクリーンキャプチャを使用しているのですべてのスクリプトを実行するのにかかる全体的な時間が多すぎます。これは最高のツールを提供するか、これ以上のものを提案することができますか?ご回答いただきありがとうございます。**編集:**希望のアスペクト比を得ることができます。改善はしていない、ショットをつかむ時間。 – yash17

+0

ストリーミング入力の場合、ffmpegは高速化できません。 – Mulvya

関連する問題