0

Panosonic WV-SP306 を、構築中の Web アプリケーションの Chrome ブラウザーでストリーミングできるようにしようとしています。コントロール パネルのデフォルトの IE 9/Windows セットアップを介してストリーミングすることができます。それに関する問題は、クライアントが Chrome のみを使用し、私は Mac で開発していることです。

以下のPythonスクリプトを実行しようとするアプローチを決定しました(ここから見つけて変更しました- http://blog.mikemccandless.com/2013/11/pulling-h264-video-from-ip-camera-using .htmlですが、最初にいくつかの問題があります。

  1. live555 は C++ ライブラリのようで、これをインストールしたり開発したりしたことはありません (これより前は常に Java でした)。このライブラリを使用するためにダウンロードしましたが、これを解凍する場所がわかりません。この点に関するアドバイスは素晴らしいでしょう。Web アプリケーションのインデックス ページは次の場所にあります: /Users/elizabethmcginnis/Documents/Titanium_Studio_Workspace/Knightscope NOC 1.5/Resources/HTML

  2. 幸運なことに、Python スクリプトを書くのもこれが初めてです。ですから、そこにも多くの問題があると確信しています。これはまったくばかげた質問です。申し訳ありませんが、コマンド ラインからこのスクリプトを実行してテストを開始する方法を教えてもらえますか?

  3. 最後に、VLC を介してストリームを実行しようとしましたが、うまくいきませんでした。デフォルトのビューは IE の ActiveX であり、使用できません。他の誰かが別の解決策を持っているなら、私はすべての耳です.

ありがとう!エリザベス

import time
import sys
import live555
import threading

# Shows how to use live555 module to pull frames from an RTSP/RTP
# source.

if len(sys.argv) != 5:
  print()
  print('Usage: python3 example.py 192.168.1.3 1 10 out.264')
  print()
  sys.exit(1)

cameraIP = sys.argv[1]
channel = sys.argv[2]
seconds = float(sys.argv[3])
fileOut = sys.argv[4]

url = 'rtsp://192.168.1.3:34005@%s/h264/Streaming/channels/%s' % (cameraIP, channel)

fOut = open(fileOut, 'wb')

def oneFrame(codecName, bytes, sec, usec, durUSec):
  print('frame for %s: %d bytes' % (codecName, len(bytes)))
  fOut.write(b'\0\0\0\1' + bytes)

# Starts pulling frames from the URL, with the provided callback:
useTCP = False
live555.startRTSP(url, oneFrame, useTCP)

# Run Live555's event loop in a background thread:
t = threading.Thread(target=live555.runEventLoop, args=())
t.setDaemon(True)
t.start()

endTime = time.time() + seconds
while time.time() < endTime:
  time.sleep(0.1)

# Tell Live555's event loop to stop:
live555.stopEventLoop()

# Wait for the background thread to finish:
t.join()
4

2 に答える 2

0

Usage: python3 example.py 192.168.1.3 1 10 out.264それが助けになるなら、コマンドラインから実行する方法の手がかりです。
Python ライブラリの C/C++ 拡張機能は、通常python3 setup.py build、ダウンロードしたパッケージの一番上にあるディレクトリのコマンド ラインからコンパイルおよびビルドされsudo python3 setup.py install、少なくとも多くのシステムでインストールされますが、Web サイトのチェックでは次のことがわかりました。

Unix (Linux、Mac OS X、QNX、およびその他の Posix 準拠システムを含む) でコードを構成およびビルドする方法

ソース コード パッケージは、(「.tar.gz」ファイルとして) ここにあります。「tar -x」および「gunzip」(または「tar -xz」が利用可能な場合) を使用してパッケージを抽出します。次に、「ライブ」ディレクトリに移動します。次に ./genMakefiles を実行します。ここで、ターゲット プラットフォームは "config" で定義された "linux" や "solaris" などです。ファイル。これにより、「ライブ」ディレクトリと各サブディレクトリに Makefile が生成されます。次に、「make」を実行します。「make」が失敗した場合は、適切な「config」に小さな変更を加える必要がある場合があります。ファイルを作成してから、「genMakefiles」を再実行してください。(例えば、別の "-I" フラグを COMPILE_OPTS 定義に追加する必要があるかもしれません。) 何人かの人々 (特に FreeBSD ユーザー) は、"make" の GNU バージョンが - 「gmake」と呼ばれることが多い - デフォルトのプリインストールされたバージョンの「make」よりもうまく機能します。(特に、「ar」コマンドでリンクの問題が発生した場合は、「gmake」を使用してみてください。) 「gcc」バージョン 3.0 以降を使用している場合: -Wno-deprecated フラグを追加することもできます。 CPLUSPLUS_FLAGS。「構成」がない場合。ターゲット プラットフォーム用のファイルが存在する場合は、既存のファイルの 1 つをテンプレートとして使用してみてください。必要に応じて、「make install」を実行して、ヘッダー、ライブラリ、およびアプリケーションを「インストール」することもできます。) 「gcc」バージョン 3.0 以降を使用している場合: -Wno-deprecated フラグを CPLUSPLUS_FLAGS に追加することもできます。「構成」がない場合。ターゲット プラットフォーム用のファイルが存在する場合は、既存のファイルの 1 つをテンプレートとして使用してみてください。必要に応じて、「make install」を実行して、ヘッダー、ライブラリ、およびアプリケーションを「インストール」することもできます。) 「gcc」バージョン 3.0 以降を使用している場合: -Wno-deprecated フラグを CPLUSPLUS_FLAGS に追加することもできます。「構成」がない場合。ターゲット プラットフォーム用のファイルが存在する場合は、既存のファイルの 1 つをテンプレートとして使用してみてください。必要に応じて、「make install」を実行して、ヘッダー、ライブラリ、およびアプリケーションを「インストール」することもできます。

こちらも合わせてご覧になることをお勧めしpyopencvます。

于 2014-01-23T19:27:54.447 に答える