Java 运动检测
我正在使用VLCJAPI编写一个网络摄像头录制应用程序。我需要一些关于从网络摄像头视频流中运动检测的帮助。如果在视频流中未检测到运动,则应停止记录 我尝试在sout链中使用--video filter=motion,但未检测到任何运动 我的灵魂之链:Java 运动检测,java,video-processing,vlcj,Java,Video Processing,Vlcj,我正在使用VLCJAPI编写一个网络摄像头录制应用程序。我需要一些关于从网络摄像头视频流中运动检测的帮助。如果在视频流中未检测到运动,则应停止记录 我尝试在sout链中使用--video filter=motion,但未检测到任何运动 我的灵魂之链: String[] options = { ":sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,sampler
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命令选项应视为数组元素): 下面的选项字符串将不起作用,因为两个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"
谢谢你的回复。我试过了,但对我不起作用。现在,流甚至没有保存到文件中。我希望您已经阅读了我正在尝试创建的跨平台VLCj应用程序,该应用程序将从网络摄像头录制,并在视频中未检测到运动时停止录制。@iltafkhalid奇怪。。。使用VLCJ 1.2.0和libVLC 1.1.11,它确实对我有用。我在使用VLCJ
playMedia(mrl,选项)
方法播放的视频中看到运动检测框,其中包含:video filter=motion
选项。@iltafkhalid上面的示例代码就是我的示例。您需要根据您的要求对其进行调整,其中应包括您的:sout
选项,以使其正常工作。当视频中没有运动时,您的录制是否停止?是否有方法删除矩形?我正在使用VLCJ2。0@iltafkhalid是的,当没有运动时它不会出现。为什么需要在录制的视频中激活运动过滤器?
":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"