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ですが、最初にいくつかの問題があります。
live555 は C++ ライブラリのようで、これをインストールしたり開発したりしたことはありません (これより前は常に Java でした)。このライブラリを使用するためにダウンロードしましたが、これを解凍する場所がわかりません。この点に関するアドバイスは素晴らしいでしょう。Web アプリケーションのインデックス ページは次の場所にあります: /Users/elizabethmcginnis/Documents/Titanium_Studio_Workspace/Knightscope NOC 1.5/Resources/HTML
幸運なことに、Python スクリプトを書くのもこれが初めてです。ですから、そこにも多くの問題があると確信しています。これはまったくばかげた質問です。申し訳ありませんが、コマンド ラインからこのスクリプトを実行してテストを開始する方法を教えてもらえますか?
最後に、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()