web-dev-qa-db-ja.com

avconvを使用してリモートIPカムから静止画像をキャプチャする

私はubuntu(サーバー)のavconvでIPカメラから単一の静止画をキャプチャしようとしています。

次のコマンドの何が問題になっているのか誰か教えてもらえますか?

avconv -i rtsp://[USER]:[PASS]@[IPADDRESS]:554/11 -s 1920x1080 -f image2 foo.jpg

現在表示されているエラーメッセージは次のとおりです。

avconv version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[rtsp @ 0xb938e0] Could not find codec parameters (Video: h264, 1920x1080)
[rtsp @ 0xb938e0] Estimating duration from bitrate, this may be inaccurate
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://xxx:[email protected]:554/11':
  Metadata:
    title           : rtsp session
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, 1920x1080, 90k tbn
    Stream #0.1: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
[buffer @ 0xb98520] Invalid pixel format string '-1'
Error opening filters!

何か価値がある場合は、Sinocamの2.0 MBIPカメラを使用しています。 iSpyを使用して、カメラからのライブストリームをリモートで表示できます。ただし、avconvを使用したままイメージにアクセスして作成することはできません。

ありがとうございました。

[〜#〜] update [〜#〜]

 avconv -i rtsp://[user]:[pass]@[ip]:554/11 -f h264 -pix_fmt yuyv422 -video_size 1920x1080 screenshot.png

イメージファイルを作成しますが、それでも失敗します。

[rtsp @ 0x1045a80] Could not find codec parameters (Video: h264, 1920x1080)
[rtsp @ 0x1045a80] Estimating duration from bitrate, this may be inaccurate
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://admin:[email protected]:554/11':
  Metadata:
    title           : rtsp session
  Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, 1920x1080, 90k tbn
    Stream #0.1: Audio: pcm_alaw, 8000 Hz, mono, s16, 64 kb/s
File 'screenshot.png' already exists. Overwrite ? [y/N] y
[buffer @ 0x1035280] Invalid pixel format string '-1'
Error opening filters!
2
Stevanicus

ついにオンラインに潜んでいる答えを見つけました:

avconv -y -loglevel debug -stimeout 2 -rtsp_transport tcp -i "rtsp://[user]:[pass]@[IP]/11" -q:v 9 -s 1920x108 -vframes 1 test.png
1
Stevanicus

AVconドキュメントによると: https://libav.org/avconv.html#fbdev

(Fbdevを使用して)スクリーンショットを撮るための正しい構文は次のとおりです。

avconv -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg

お役に立てれば。

1
Franco