我正在尝试让我的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()
答案 0 :(得分: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
,但是对网站的检查给出了以下内容。
如何在Unix上配置和构建代码(包括Linux,Mac OS X,QNX和其他符合Posix的系统)
可以在此处找到源代码包(作为“.tar.gz”文件)。使用 “tar -x”和“gunzip”(或“tar -xz”,如果有的话)来提取 包;然后cd到“live”目录。然后跑 ./genMakefiles你的目标平台在哪里 - 例如,“linux”或“solaris” - 由a定义 “配置”。文件。这将生成一个Makefile “live”目录和每个子目录。然后运行“make”。如果“制造” 如果失败,您可能需要对相应的内容进行少量修改 “配置”。文件,然后重新运行“genMakefiles “。(例如,您可能需要添加另一个”-I“标志 COMPILE_OPTS定义。)有些人(特别是FreeBSD 用户)已报道GNU版本的“make” - 经常被称为 “gmake” - 比默认的预装版本更好 “使”。 (特别是,如果遇到,你应该尝试使用“gmake” 将问题与“ar”命令联系起来。)如果您使用的是“gcc”版本 3.0或更高版本:您可能还希望将-Wno-deprecated标志添加到CPLUSPLUS_FLAGS。如果没有“配置”。你的文件存在 目标平台,然后尝试使用其中一个现有文件作为 模板。如果您愿意,您还可以“安装”标题,库, 和运行“make install”的应用程序。
我还建议您查看pyopencv
。
答案 1 :(得分:0)
所以我解决了我的一半问题。
在松下软件部门的一些广泛问题和重新利用旧PC之间,我能够调整管理员的设置(不仅改变比特率,确保两个频道都在h264和http中播放,以及通过内部麦克风打开音频,显而易见我知道但是得到他们的帮助甚至进入管理面板很难)。所有这一切看起来都很明显,但你必须保存几次并且两个频道都存在问题。
好的,然后我可以通过VLC运行“开放网络频道”,只需输入此URL“rtsp:// LocalIP / MediaInput / h264”,然后打开向导中的Streaming / File设置即可确定它在本地流式传输。一旦我确认这适用于所有4台相机。我的下一步是同时运行所有四个。
我通过在Mac OSX Mavericks上使用这些命令从命令行运行所有四个来完成此操作:
$ alias vlc ='/ Applications / VLC.app / Contents / MacOS / VLC' $ vlc rtsp://192.168.1.6/MediaInput/h264
现在我正在尝试,但还没有完全通过马赛克完成它们的运行。我在这里包含了我的配置文件。一旦完成,我将尝试在网页上运行整个事情(我在eclipse中使用动态Web项目)。
启用新频道1广播
setup channel1输入rtsp://192.168.1.3/MediaInput/h264
设置channel1输出#duplicate {dst = mosaic-bridge {id = 1,height = 144,width = 180},select = video,dst = bridge-out {id = 1},select = audio}
启用了新的channel2广播 setup channel2输入rtsp://192.168.1.4/MediaInput/h264 设置channel2输出#duplicate {dst = mosaic-bridge {id = 2,height = 144,width = 180},select = video,dst = bridge-out {id = 2},select = audio}
启用了新的channel3广播 setup channel3输入rtsp://192.168.1.5/MediaInput/h264 设置channel3输出#duplicate {dst = mosaic-bridge {id = 3,height = 144,width = 180},select = video,dst = bridge-out {id = 3},select = audio}
启用了新的channel4广播 setup channel4输入rtsp://192.168.1.6/MediaInput/h264 设置channel4输出#duplicate {dst = mosaic-bridge {id = 3,height = 144,width = 180},select = video,dst = bridge-out {id = 4},select = audio}
启用新的后台广播 设置背景输入/ Users / xxx / Pictures / yyyy / ks logo.png 设置后台输出#transcode {sfilter = mosaic,vcodec = mp2v,vb = 10000,scale = 1}:bridge-in {delay = 400,id-offset = 100}:standard {access = udp,mux = ts,url = 239.255.12.42,树液,名字= “马赛克”}
控制背景播放 控制频道1播放 控制频道2播放 控制频道3播放 控制频道4播放