gpt4 book ai didi

java - 运动检测VLCj

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:34 24 4
gpt4 key购买 nike

我正在使用 VLCj API 编写网络摄像头录制应用程序。我需要一些有关网络摄像头视频流中运动检测的帮助。如果在视频流中没有检测到运动,则录制将停止。

我尝试在 sout 链中使用 --video-filter=motion 但没有检测到任何运动。

我的链式店:

String[] options = {
":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion",":input-slave=alsa://hw:0,0" };

期待您的回复。提前致谢。

最佳答案

您错误地传递了 VLC 命令选项字符串数组;它应该像下面的例子一样(每个 VLC 命令选项都应该被视为一个数组元素):

String[] options = {
":rtsp-mcast",
":sharpen-sigma=2.0",
":video-filter=motion",
":blur-factor=127",
":ipv4-timeout=3000",
":no-video-title-show",
":loop",
":sout-all",
":sout-keep"
};

下面的选项字符串将不起作用,因为两个 VLC 命令一起包含在一个字符串中; :sout 命令和 --video-filter=motion 命令:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion} --video-filter=motion"

应该是这样的:

":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=" + fileName + "},dst=display,select=noaudio,video-filter=motion}",
"--video-filter=motion"

关于java - 运动检测VLCj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9696498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com