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 ...
随机推荐
- Android --设置Toast消失时间
参考博客:Android开发,Toast重复显示(显示时间过长)解决方法 package com.dr.app.drseamoniter.toast; import android.content.C ...
- Android ListView 自定义 Adapter
自定义Adapter类 public class ListViewAdapter extends BaseAdapter { private static final String TAG = Mai ...
- Java 线程池的介绍以及工作原理
在什么情况下使用线程池? 1.单个任务处理的时间比较短 2.将需处理的任务的数量大 使用线程池的好处: 1. 降低资源消耗: 通过重复利用已创建的线程降低线程创建和销毁造成的消耗.2. 提高响应速度: ...
- Java HashMap Demo
代码: import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Map. ...
- Java jaxp查询节点
<?xml version="1.0" encoding="UTF-8"?> <person> <p1> <name& ...
- play项目部署
首先对于现场的数据库,一定要谨慎谨慎再谨慎,特别是保存有重要数据的. 使用expdp命令导入数据库: 事前准备: 1.确保linux服务器上已经正确安装oracle (10g以上版本) 2.有Xshe ...
- expect实现交互式脚本
#!/usr/bin/expect -f ##告诉解释器用expect来解释 set timeout 6 ##设置超时时间 ] ## 这个是传递给脚本的第一个参数,并把参数赋值给user ] ## 这 ...
- 让show parameter显示隐含参数(11G)
1.创建视图show_hidden_v$parameter create or replace view show_hidden_v$parameter (INST_ID, NUM , NAME , ...
- Oracle RAC inventory.xml损坏后如何修复
不建议直接修改该文件 1.从其它节点拷贝一份 2.使用runInstaller工具(这个工具位于<GI_HOME>/oui/bin路径下)重建inventory.xml文件 步骤1:添加G ...
- jdk与eclipse版本问题解决applet的启动
今天在中韩,遇到一个保全项目,需要调用applet显示打印批单,结果IE一直显示安全设置问题,去java程序的安全里面想下调等级,不好调,所以想改个jdk_32试试. 版本环境 原先是eclipse_ ...