vlc的应用之九:用vlc串流摄像头

vlc的应用之九:用vlc串流摄像头,第1张

概述n就没有更新博客了,主要是Jeremiah最近对vlc研究的非常的少了,工作重点转移了,又增加了管理工作,让Jeremiah忙的晕头转向的。       这篇博客是很久之前就想写的,今天终于提笔写了,心情还是比较爽的。废话不多说。   0. 环境搭建 Jeremiah这次主要是用的vlc-1.0.0(英文版)进行讲解。首先需要准备摄像头,Jeremiah用的是一个普通摄像头(以前钓MM用的,嘻嘻)

n就没有更新博客了,主要是Jeremiah最近对vlc研究的非常的少了,工作重点转移了,又增加了管理工作,让Jeremiah忙的晕头转向的。

这篇博客是很久之前就想写的,今天终于提笔写了,心情还是比较爽的。废话不多说。 0. 环境搭建
Jeremiah这次主要是用的vlc-1.0.0(英文版)进行讲解。首先需要准备摄像头,Jeremiah用的是一个普通摄像头(以前钓MM用的,嘻嘻),驱动安装好后,在“我的电脑”中显示如下。
1. vlc播放摄像头 开启vlc-1.0.0,media->open capture device,进入Capture Device页面。这个也可以通过media->Advanced open file,选取此标签页。
vIDeo device name选择VIMICRO USB PC Camera (ZC0301PLH),如果没有,请先选择Refresh List@R_192_6419@。
audio device name选择SoundMAX HD Audio,这个是Jeremiah的声卡。


之后可以勾选show more options,里面可是设置缓冲及看到MRL和Edit Options,这些信息都是很重要的。Advance Option按钮里面有一些详细设置,大家可以进去选择,其中vIDeo size是可以做调整的。下面会讲到。

之后点play,就可以播放了。
2. 用命令行开启vlc播放摄像头
命令行的最大好处就是,vlc命令后面的参数,就是我们在编程的时候调用libvlc_new的argv,将这些参数搞明白,我们就可以在编程的时候调用了。


开启cmd,切换到vlc目录下。

根据1中的MRL和Edit Options信息,设置vlc播放参数如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD Audio" :dshow-size=320*240 各个参数什么意思都是很明显的,如果不明白,就运行vlc -H,然后到vlc目录下面去找vlc-help.txt,里面是全部的参数的介绍。 3. 将vlc播放的摄像头信息存入文件中 播放成功之后,在达到我们的目的前,我们先做一个简单的验证工作,就是播放摄像头并存入文件。
根据以前stream到文件的参数,修改2的参数如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD udio" :dshow-size=320*240 :sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=file,mux=ts,dst=D:/01.ts}} 这里用到了转码,就是将摄像头的视频编码为h264,音频编码为MP3,然后封装为ts写入到d:/01.ts中。
这个不会显示摄像头,但是通过刷新d:/01.ts就会发现这个文件是在增大的,也就是有视频流在写入。
4. 将摄像头串流到网络中
根据3的参数做简单的修改就可以达到串流摄像头视频流到网络的目的了。修改3的参数如下。
vlc dshow:// :dshow-vdev="VIMICRO USB PC Camera (ZC0301PLH)" :dshow-adev="SoundMAX HD Audio" :dshow-size=320*240 :sout=#transcode{vcodec=h264,samplerate=44100}:duplicate{dst=display,dst=rtp{dst=127.0.0.1,port=1234}} 这里的duplicate大家应该都很熟悉了,因为在录像,vlm里面都讲过这个参数。参数的意思是,将摄像头的音视频流分别编码为MP3和h264之后封装为ts,然后通过rtp发送到127.0.0.1的1234端口上,同时显示出来。如果希望发送到其他网络地址或组播里面只需要改变127.0.0.1和1234为我们需要的地址和端口即可。
再开启一个vlc,播放这个ts over rtp流。
vlc rtp://@:1234 --rtp-caching=1500 成功后就可以看到了。切图如下: 左边的是摄像头的流服务,右边的是流的客户端,从下边的地址就能看的很清楚。 5. 遗留问题:
从图片可以看出,播放的视频颜色是不对的,是摄像头的问题还是vlc本身的问题还是参数设置的问题,现在不得而知,当然摄像头本身是没问题的,因为qq视频都很正常。希望谁研究出来告诉我一声。谢谢。

本文出自 “Jeremiah的程序乐园” 博客,请务必保留此出处http://jeremiah.blog.51cto.com/539865/245509


转自@L_404_2@

总结

以上是内存溢出为你收集整理的vlc的应用之九:用vlc串流摄像头全部内容,希望文章能够帮你解决vlc的应用之九:用vlc串流摄像头所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1285800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存