我正在尝试让我的松下 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()