ffmpeg无法接收组播流问题处理
问题:ffmpeg无法对IP组播进行处理,表现如下
[root@os01 /]# ffprobe udp://225.0.0.2:9000
ffprobe version 2.7. Copyright (c) - the FFmpeg developers
built with gcc 4.8. (GCC) (Red Hat 4.8.-)
configuration: --enable-gpl --enable-nonfree --enable-static --enable-pthreads
libavutil . 27.100 / . 27.100
libavcodec . 41.100 / . 41.100
libavformat . 36.100 / . 36.100
libavdevice . 4.100 / . 4.100
libavfilter . 16.101 / . 16.101
libswscale . 1.101 / . 1.101
libswresample . 2.100 / . 2.100
libpostproc . 3.100 / . 3.100
(一直卡在这里)
而通过tcpdump抓包,是可以抓到组播流的
[root@os01 /]# tcpdump -ieno1 host 225.0.0.2 and port
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size bytes
::35.745690 IP bogon. > 225.0.0.2.cslistener: UDP, length
::35.759688 IP bogon. > 225.0.0.2.cslistener: UDP, length
::35.763224 IP bogon. > 225.0.0.2.cslistener: UDP, length
::35.766720 IP bogon. > 225.0.0.2.cslistener: UDP, length
::35.770256 IP bogon. > 225.0.0.2.cslistener: UDP, length
::35.773768 IP bogon. > 225.0.0.2.cslistener: UDP, length
查看route表如下
[root@os01 logs]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default bogon 0.0.0.0 UG eno4
link-local 0.0.0.0 255.255.0.0 U eno2
172.17.0.0 0.0.0.0 255.255.0.0 U docker0
172.28.1.0 0.0.0.0 255.255.255.0 U eno3
172.28.33.0 0.0.0.0 255.255.255.0 U eno1
172.28.34.0 0.0.0.0 255.255.255.0 U eno2
192.168.0.0 0.0.0.0 255.255.255.0 U eno4
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
故,分析得出,上述问题是由route表中未配置组播地址导致,解决办法如下
[root@os01 logs]# route add -net 225.0.0.0 netmask 255.0.0.0 dev eno1
[root@os01 logs]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default bogon 0.0.0.0 UG eno4
link-local 0.0.0.0 255.255.0.0 U eno2
172.17.0.0 0.0.0.0 255.255.0.0 U docker0
172.28.1.0 0.0.0.0 255.255.255.0 U eno3
172.28.33.0 0.0.0.0 255.255.255.0 U eno1
172.28.34.0 0.0.0.0 255.255.255.0 U eno2
192.168.0.0 0.0.0.0 255.255.255.0 U eno4
192.168.122.0 0.0.0.0 255.255.255.0 U virbr0
225.0.0.0 0.0.0.0 255.0.0.0 U eno1
再次验证ffmpeg:
[root@os01 logs]# ffprobe udp://225.0.0.2:9000
ffprobe version 2.7. Copyright (c) - the FFmpeg developers
built with gcc 4.8. (GCC) (Red Hat 4.8.-)
configuration: --enable-gpl --enable-nonfree --enable-static --enable-pthreads
libavutil . 27.100 / . 27.100
libavcodec . 41.100 / . 41.100
libavformat . 36.100 / . 36.100
libavdevice . 4.100 / . 4.100
libavfilter . 16.101 / . 16.101
libswscale . 1.101 / . 1.101
libswresample . 2.100 / . 2.100
libpostproc . 3.100 / . 3.100
[h264 @ 0x2ed1160] non-existing PPS referenced
Last message repeated times
[h264 @ 0x2ed1160] decode_slice_header error
[h264 @ 0x2ed1160] no frame!
[h264 @ 0x2ed1160] non-existing PPS referenced
Last message repeated times
[h264 @ 0x2ed1160] decode_slice_header error
[h264 @ 0x2ed1160] no frame!
[h264 @ 0x2ed1160] non-existing PPS referenced
Last message repeated times
ffmpeg无法接收组播流问题处理的更多相关文章
- 使用VLC创建组播流
vlc既是一个播放器,又可以成为一个流媒体服务器.最近需要做udp组播播放相关的东西,需要先在本地搭建一个udp组播服务器,因为机器上本来就装有vlc,所以就用它了. 第一步: 点击媒体->流 ...
- linux下播放组播流出现setsockopt:No such device错误
在linux下播放组播流出现setsockopt:No such device错误是因为多播IP没有add路由表里面 可以采用如下命令完成: root@android:/ # busybox rout ...
- Android为TV端助力:UDP协议(接收组播和单播)
private static String MulticastHost="224.9.9.98";private static int POST=19999;private sta ...
- ffmpeg笔记——UDP组播接收总结
ffmpeg在avformat_open_input里面已经实现了UDP的协议,所以只需要设置好参数,将url传递进去就可以了. 和打开文件的方式基本一样: 01 AVCodecContext *pV ...
- dell n2000 组播抑制
http://en.community.dell.com/support-forums/network-switches/f/866/t/19677497 http://en.community.de ...
- CCIE路由实验(6) -- 组播Multicasting
1.组播IGMP的各种情况2.PIM Dense-Mode3.PIM Sparse-Mode4.PIM双向树和SSM5.动态RP之auto-rp6.动态RP之BSR7.Anycast RP8.域间组播 ...
- SDN网络IPv6组播机制支持实时视频业务海量用户扩展
以 OpenFlow 技术为核心的软件定义网络(SDN)框架具有集中控制的功能能够自己感知网络拓扑的变化,在细粒度的路径选择.接入控制.负载均衡方面有着天然的优势,为 IPv6 组播功能的实现提供了好 ...
- 组播(Multicast)传输
组播(Multicast)传输: 在发送者和每一接收者之间实现点对多点网络连接. 如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包.它提高了数据传送效率.减少了骨干网络出现拥 ...
- android multicast 多播(组播)问题
有谁遇到过同样问题的可以探讨下,或者已经解决问题的,能够指导下我 获取组播锁 private InetAddress group; WifiManager wm=(WifiManager ...
随机推荐
- Power-BI仪表盘文本框排行分析设计要点
例如:我在BI软件中做一个商品类别TOP5排行. 文本框默认绑定第一列,但是没显示是那个品类. 这里我们需要做几个操作来进行优化. 1.把品类显示出来. 在序列中找到标题进行显示,如果位置有重叠可以进 ...
- [OpenCV](1)安装与测试
1.安装包下载地址:http://opencv.org/downloads.html 2.解压缩到D:\Program Files (x86) 3.添加环境变量:D:\Program Files (x ...
- 学习"大众点评网的架构设计与实践"
今天看了一篇"程序员"上的文章:"大众点评网的架构与实践",因为里面谈的架构演变之路中所经历的痛点对我的工作经验来说感同身受,所以觉得文章里的一些解决方案对我还 ...
- 前端学习——css基础知识,选择器与html模板、值得收藏的html标签
一.css需要的html(采用html5标准) DTD,文档类型声明: <!Doctype html> 文本编码声明: <meta charset="utf-8" ...
- 使用xib封装一个自定义view的步骤
使用xib封装一个自定义view的步骤 1> 新建一个继承UIView的自定义view,假设类名叫做(MJAppView) 2> 新建一个MJAppView.xib文件来描述MJAppVi ...
- ARC 没有自动释放内存
http://www.cnblogs.com/qingche/p/4569833.html 定位了好几天,才发现是打印日志没有即时释放内存,使用intrustment
- Reporting services导出的Excel文件避免出现隐藏行列的布局
开发Reporting services时,为了避免在导出的Excel文件中出现隐藏的行和列,必须遵循以下规则: 1.Page header中的Textbox直接必须紧密贴合在一起 2.Page he ...
- Java基础之创建窗口——使用网格布局管理器(TryGridLayout)
控制台程序. 网格布局管理器可以在容器的矩形网格中布局组件. import javax.swing.*; import java.awt.*; import javax.swing.border.Et ...
- 错过C++
曾相识的C++--2008年那是还在学校,接触到了这门语言,可遗憾的是当时,自己没有能静下心好好学习这门语言.所以相识了了半年的c++就这样不见. 如今又相逢,但已经感觉到很陌生,陌生的我们互补相认.
- iOS缓存使用的框架
MagicalRecord FMDB 都可以在gitHub上找到