简单的ffmpeg广播和视频监控
来源:互联网 发布:软件开发设计方案模板 编辑:程序博客网 时间:2024/05/20 09:09
想通过远程查看家中的摄像头,查阅相关资料,通过ffmpeg和ffserver(https://trac.ffmpeg.org/wiki/ffserver)可实现.
这里ffmpeg和ffserver可以在同一主机运行或者在不同的主机运行.在同一台主机的话,远程访问需要
将ip设置成公网,这样太麻烦.这里直接将ffserver运行在阿里云服务器上,通过ffmpeg推流到阿里云服务器,
客户端通过支持流媒体的播放器观看音视频.首先安装ffmpeg(或者下载源码并编译),在ubuntu上运行
apt-get install ffmpeg(ffplay和ffserver也会安装),默认的ffserver配置文件为/etc/ffserver.conf,这里先
不传输视频,而是拿音乐进行广播来实验.
编写一个新的配置ffserver.conf,如下
HTTPPort 8090HTTPBindAddress 0.0.0.0MaxHTTPConnections 2000MaxClients 1000MaxBandwidth 1000CustomLog -<Feed feed1.ffm>File /tmp/feed1.ffmFileMaxSize 2000K</Feed><Stream test.mp3>Feed feed1.ffmAudioBitRate 64audioSampleRate 44100AudioChannels 2Format mp2 </Stream><Stream stat.html>Format statusACL allow 127.0.0.1ACL allow localhostACL allow 192.168.0.0 192.168.255.255</Stream><Redirect index.html>URL http://www.ffmpeg.org/</Redirect>服务端运行
ffserver -f ffserver.conf
推流
ffmpeg -re -i test.mp3 http://120.78.155.169:8090/feed1.ffm
播放
ffplay http://120.78.155.169:8090/test.mp3
广播可以了,直接试下传输音视频,配置如下
HTTPPort 8090HTTPBindAddress 0.0.0.0MaxHTTPConnections 2000MaxClients 1000MaxBandwidth 1000CustomLog -<Feed feed1.ffm>File /tmp/feed2.ffmFileMaxSize 2000K</Feed><Stream test.flv> Feed feed1.ffm Format flv AudioCodec aac Strict -2 AudioBitRate 128 AudioChannels 2 AudioSampleRate 32000 AVOptionAudio flags +global_header VideoCodec libx264 VideoBitRate 600 VideoFrameRate 25 VideoSize 640x480 VideoGopSize 25 AVOptionVideo flags +global_header</Stream><Stream stat.html>Format statusACL allow 127.0.0.1ACL allow localhostACL allow 192.168.0.0 192.168.255.255</Stream><Redirect index.html>URL http://www.ffmpeg.org/</Redirect>运行ffserver服务
ffserver -f ffserver.conf
推流
ffmpeg -re -i test.flv http://120.78.155.169:8090/feed1.ffm
播放
ffplay http://120.78.155.169:8090/test.flv
直接推流摄像头
ffserver -f ffserver.conf
推流
ffmpeg -re -i /dev/video0 http://120.78.155.169:8090/feed1.ffm
播放
ffplay http://120.78.155.169:8090/test.flv
也可以将上面几份配置写在同一个文件中,如下
HTTPPort 8090HTTPBindAddress 0.0.0.0MaxHTTPConnections 2000MaxClients 1000MaxBandwidth 1000CustomLog -<Feed feed1.ffm>File /tmp/feed1.ffmFileMaxSize 2000K</Feed><Feed feed2.ffm>File /tmp/feed2.ffmFileMaxSize 2000K</Feed><Feed feed3.ffm>File /tmp/feed3.ffmFileMaxSize 2000K</Feed><Stream test.mp3>Feed feed1.ffmAudioBitRate 64audioSampleRate 44100AudioChannels 2Format mp2 </Stream><Stream test.flv> Feed feed2.ffm Format flv AudioCodec aac Strict -2 AudioBitRate 128 AudioChannels 2 AudioSampleRate 32000 AVOptionAudio flags +global_header VideoCodec libx264 VideoBitRate 600 VideoFrameRate 25 VideoSize 640x480 VideoGopSize 25 AVOptionVideo flags +global_header</Stream><Stream camera.flv> Feed feed3.ffm Format flv VideoFrameRate 25 VideoSize 640x480 VideoCodec libx264 NoAudio</Stream><Stream stat.html>Format statusACL allow 127.0.0.1ACL allow localhostACL allow 192.168.0.0 192.168.255.255</Stream><Redirect index.html>URL http://www.ffmpeg.org/</Redirect>
推流的时候,ffmpeg -re -i input http://ip:8090/feedx.ffm,修改对应的feedx即可.
网页可通过ip:port/stat.html查看ffserver状态
遇到的最大问题是出现推流时出现Invalid data found when processing input错误,后面发现是公司的网络问题,换一个网络环境推流成功.
- 简单的ffmpeg广播和视频监控
- 使用ffmpeg直播监控的视频
- 最简单的FFMPEG的视频编码器
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- 基于v4l2 ffmpeg x264的视频远程监控
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控 .
- 2440 基于v4l2 ffmpeg x264的视频远程监控
- 基于ffmpeg-1.1的视频监控,输出到LCD上
- mini2440 基于v4l2 ffmpeg x264的视频远程监控
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- FFmpeg的远程视频监控系统编解码
- mini2440 基于v4l2 ffmpeg x264的视频远程监控
- 基于FFmpeg的远程视频监控系统编解码
- arm mini2440 基于v4l2 ffmpeg x264的视频远程监控
- android基于ffmpeg的简单视频播发器 编译ffmpeg
- 简单的ffmpeg视频转码,只处理视频
- android基于ffmpeg的简单视频播发器 播放视频
- 【FFMpeg视频开发与应用基础】一、使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
- iOS App 启动性能优化
- mysql用户和库的权限设置
- TransformPoint和TransformDirection函数
- 这可能是最好的RxJava 2.x 入门教程(一)
- 简述JVM垃圾回收机制
- 简单的ffmpeg广播和视频监控
- 安全管理器及策略
- 苹果越狱教程
- Visual Studio 各版本下载
- 【23种设计模式——单例模式】
- 关于cookei的设置和删除
- [日推荐]『讯飞快读』人工智能高效管理时间
- 基于HTML5的WebGL经典3D虚拟机房漫游动画
- Python踩坑之路-datetime模块的timedelta应用