質問編集履歴

1

cURLの質問に絞りました。

2021/12/01 14:18

投稿

tyamzak_
tyamzak_

スコア95

test CHANGED
@@ -1 +1 @@
1
- リモートでIPカメラから音声出力するめのヒントが欲しです
1
+ curlONVIFカメラからbackchannel URI を取得したい
test CHANGED
@@ -3,10 +3,6 @@
3
3
 
4
4
 
5
5
  PCでマイク入力もしくは音声ファイルを送信して、IPカメラのオーディオ出力端子から音声出力できる事が目的です。
6
-
7
- なるべく多くのIPカメラに対応したいと考えており、カメラ個別のAPIではなくONVIF等の規格に対応したいと考えています。
8
-
9
- Pythonしか経験が無く、最終的にはUbuntuサーバー上で動かしたいので、できればPythonを使いたいと考えています。
10
6
 
11
7
 
12
8
 
@@ -14,54 +10,68 @@
14
10
 
15
11
 
16
12
 
17
- ネット上で探してたのですが、以下2つのURL両方ともやりたい事に合致し
13
+ ONVIF対応カメラに対、curlを使っ以下画像のようなレスポンスを受け取りのですが、期待するレスポンスが返っせん
18
14
 
19
- 方ともONVIF対応のRTSP経由で、audio backchannelという仕組みを使って音声を送ってようです
15
+ DESCRIBE の部分の書きが悪いのかなともっていますが、どのように直せばよいのか見つけられていません
20
-
21
- cとc#であり、これをどうPythonで実現するのかという所で詰まっています。
22
16
 
23
17
 
24
18
 
25
- [Discussion:Onvif backchannel](https://gstreamer-devel.narkive.com/pRWcJaRA/onvif-backchannel)
19
+ ![![イメージ説明](f241f4229be601aa98393df07c2c8143.png)](fe7b3c75774f0e4bb48292dda5e88726.png)
26
20
 
27
-
28
-
29
- [How to send audio data on rtsp backchannel?](https://stackoverflow.com/questions/59465932/how-to-send-audio-data-on-rtsp-backchannel)
21
+ [ONVIF Core Specification 211ページ](http://developer.onvif.org/pub/core/Core_2.00.pdf)
30
22
 
31
23
 
32
24
 
33
25
  # 試したこと
34
26
 
35
- ONVIFで行うという事だったので、onvifをpythonから扱えるライブラリを使用しようと考えました。
36
27
 
37
- ライブラリは以下でしたが、サンプルコードや解説どおりに動かしても不明なエラーが出たり、WSDLファイルをうまく読めずに、定義に合わせた記述ができず、別の方策を探すことにしました。
38
28
 
29
+ ```bash
30
+
31
+ $ curl -v -X DESCRIBE "rtsp://admin:password@192.168.1.212:554/Streaming/Channels/101 RTSP/1.0" -H "Content-
32
+
33
+ Type: application/sdp" -H "User-Agent: ONVIF Rtsp client" -H "Require: www.onvif.org/ver20/backchannel"
34
+
35
+ * Trying 192.168.1.212...
36
+
37
+ * TCP_NODELAY set
38
+
39
+ * Connected to 192.168.1.212 (192.168.1.212) port 554 (#0)
40
+
41
+ * Server auth using Basic with user 'admin'
42
+
43
+ > OPTIONS * RTSP/1.0
44
+
45
+ > CSeq: 1
46
+
47
+ > Authorization: Basic YWRtaW46QW5zdXNlcjA=
48
+
39
- VSCodeでWSDLのメソッドや型が認識され無かった所が、苦労点でした。
49
+ > Content-Type: application/sdp
50
+
51
+ > User-Agent: ONVIF Rtsp client
52
+
53
+ > Require: www.onvif.org/ver20/backchannel
54
+
55
+ >
56
+
57
+ < RTSP/1.0 200 OK
58
+
59
+ < CSeq: 1
60
+
61
+ < Connection: Keep-Alive
62
+
63
+ < Date: Thu, 02 Dec 2021 04:24:30 GMT
64
+
65
+ < Public: OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, GET_PARAMETER, TEARDOWN, SET_PARAMETER
66
+
67
+ <
68
+
69
+ * Connection #0 to host 192.168.1.212 left intact
70
+
71
+ ```
40
72
 
41
73
 
42
74
 
43
- [python-onvif-zeep](https://github.com/FalkTannhaeuser/python-onvif-zeep)
44
-
45
-
46
-
47
- Gstreamerというライブラリからonvifのオブジェクトを扱えるという事で、python bindingという物を使おうとしましたが、上記内容を実行したサンプルコードなどはみつからず。
48
-
49
- ヒントになりそうなコードだと思っても、Gstreamerやpythonのバージョン違いのコードばかりが見つかり、困っております。
50
-
51
-
52
-
53
-
54
-
55
- [gst-python](https://github.com/GStreamer/gst-python)
56
-
57
-
58
-
59
- # 教示いただきた
75
+ 指南いただければ幸です。
60
-
61
- IPカメラからオーディオを出力するという点について、上記のアプローチ方法は普通なのでしょうか。
62
-
63
- こんなに暗中模索しながら開発しないはずだと勝手に思っているのですが、皆様はどのように開発されていらっしゃるのでしょうか。
64
-
65
- より良いと思われる方法や、必要な知識の在処などについて、アドバイスいただけますと幸いです。
66
76
 
67
77
  よろしくお願いいたします。