Skip to content

调试了好久,FCC成功率很低,不知道是什么原因! #268

@CGG888

Description

@CGG888

`17:00:10 INFO [Worker 0] New client 192.168.88.108:7080 requested URL: /%E5%B9%BF%E4%B8%9C%E7%94%B5%E8%A7%86%E5%8F%B0/%E5%B9%BF%E4%B8%9C%E5%8D%AB%E8%A7%86 (method: GET)

17:00:10 INFO [Worker 0] Service matched: 广东电视台/广东卫视

17:00:10 INFO [Worker 0] FCC: Using Telecom/ZTE/Fiberhome FCC protocol

17:00:10 DEBUG [Worker 0] FCC: Initializing FCC session and sending request

17:00:10 DEBUG [Worker 0] FCC: Bound client socket to port 40077

17:00:10 DEBUG [Worker 0] FCC: Socket registered with epoll

17:00:10 DEBUG [Worker 0] FCC (Telecom): Request (FMT 2) sent to server 183.59.168.166:8027

17:00:10 DEBUG [Worker 0] FCC State: INIT -> REQUESTED (Request sent)

17:00:10 DEBUG [Worker 0] FCC Response: FMT=3, result=0, signal_port=8027, media_port=0, valid_time=3600, speed=0 bps, speed_after_sync=0 bps

17:00:10 DEBUG [Worker 0] FCC (Telecom): Server provided new IP: 183.59.174.45

17:00:10 DEBUG [Worker 0] FCC (Telecom): Server requests redirection to new server 183.59.174.45:8027 (redirect #1)

17:00:10 DEBUG [Worker 0] FCC State: REQUESTED -> INIT (Server redirect)

17:00:10 DEBUG [Worker 0] FCC: Initializing FCC session and sending request

17:00:10 DEBUG [Worker 0] FCC (Telecom): Request (FMT 2) sent to server 183.59.174.45:8027

17:00:10 DEBUG [Worker 0] FCC State: INIT -> REQUESTED (Request sent)

17:00:10 DEBUG [Worker 0] FCC Response: FMT=3, result=0, signal_port=0, media_port=8082, valid_time=0, speed=10.41 Mbps, speed_after_sync=1.73 Mbps

17:00:10 DEBUG [Worker 0] FCC (Telecom): Server provided new media port: 8082

17:00:10 DEBUG [Worker 0] FCC State: REQUESTED -> UNICAST_PENDING (Server accepted request)

17:00:10 DEBUG [Worker 0] FCC (Telecom): Server accepted request, waiting for unicast stream

17:00:10 DEBUG [Worker 0] FCC State: UNICAST_PENDING -> UNICAST_ACTIVE (First unicast packet received)

17:00:10 INFO [Worker 0] FCC: Unicast stream started successfully

17:00:10 DEBUG [Worker 0] RTP packet loss detected - expected seq 50929, received 50932 (gap: 3 packets)

17:00:10 DEBUG [Worker 0] Out-of-order RTP packet discarded - last sent seq 50933, received 50929 (diff: -4)

17:00:10 DEBUG [Worker 0] Out-of-order RTP packet discarded - last sent seq 50933, received 50930 (diff: -3)

17:00:10 DEBUG [Worker 0] Out-of-order RTP packet discarded - last sent seq 50933, received 50931 (diff: -2)

17:00:11 DEBUG [Worker 0] Client disconnected

17:00:11 DEBUG [Worker 0] FCC: Sending termination packet (cleanup)

17:00:11 DEBUG [Worker 0] FCC (Telecom): Termination packet (FMT 5) sent (cleanup), seqn=0

17:00:11 DEBUG [Worker 0] FCC: Socket closed

17:00:11 DEBUG [Worker 0] RTSP: Cleanup called in state 0, skipping (already cleaning up or done)

17:00:11 DEBUG [Worker 0] RTSP: Session cleanup complete

17:00:11 INFO [Worker 0] New client 192.168.88.108:7081 requested URL: /%E5%B9%BF%E4%B8%9C%E7%94%B5%E8%A7%86%E5%8F%B0/%E5%B9%BF%E4%B8%9C%E5%8D%AB%E8%A7%86 (method: GET)

17:00:11 INFO [Worker 0] Service matched: 广东电视台/广东卫视

17:00:11 INFO [Worker 0] FCC: Using Telecom/ZTE/Fiberhome FCC protocol

17:00:11 DEBUG [Worker 0] FCC: Initializing FCC session and sending request

17:00:11 DEBUG [Worker 0] FCC: Bound client socket to port 40055

17:00:11 DEBUG [Worker 0] FCC: Socket registered with epoll

17:00:11 DEBUG [Worker 0] FCC (Telecom): Request (FMT 2) sent to server 183.59.168.166:8027

17:00:11 DEBUG [Worker 0] FCC State: INIT -> REQUESTED (Request sent)

17:00:11 WARN [Worker 0] FCC: Server response timeout (80 ms), falling back to multicast

17:00:11 DEBUG [Worker 0] FCC State: REQUESTED -> MCAST_ACTIVE (Signaling timeout)

17:00:11 INFO [Worker 0] Multicast: Successfully joined group

17:00:11 DEBUG [Worker 0] Multicast: Socket registered with epoll`

这个是日志,相关的路由规则防火墙都指向了pppoe-iptv ,我使用vlan 来进行的,eth0为物理口 ,设置VLAN (802.1q) vlan41网络(pppoe方式),接口设置wan,vlan45iptv(pppoe模式)接口设置iptv;eth1物理口,设置网桥设备为br-lan,接口lan,现在就出现了上面的这些错误!FCC成功率很低!检查了相关的配置,都没有问题!

配置文件:
`[global]

日志详细程度: 0=FATAL 1=ERROR 2=WARN 3=INFO 4=DEBUG

verbosity = 4

最大并发客户端数

maxclients = 20

UDPxy 兼容性

udpxy = yes

工作进程数(默认: 1)

workers = 1

检查 HTTP 请求的 Host 头 (默认:无)

hostname = somehost.example.com

启用后,将使用 HTTP X-Forwarded-For 头作为客户端地址,用于显示在状态面板上 (默认:no)

并接受 X-Forwarded-Host / X-Forwarded-Proto 头作为 playlist.m3u 中的地址前缀

建议仅在使用反向代理时启用

xff = no

HTTP 请求认证令牌(可选,默认: 无)

设置后,所有 HTTP 请求必须携带 r2h-token 查询参数,且值与此配置匹配

例如:

http://server:5140/rtp/239.253.64.120:5140?fcc=10.255.14.152:15970&r2h-token=your-secret-token

http://server:5140/player?r2h-token=your-secret-token

r2h-token = your-secret-token-here

状态页路径(默认: /status)

status-page-path = /status

播放器页路径(默认: /player)

player-page-path = /player

上游网络接口配置 (可选)

简单配置:只配置一个默认接口,所有流量类型都使用此接口

#upstream-interface = eth0

高级配置:为不同流量类型配置专用接口

注意:专用接口配置优先级高于默认接口

upstream-interface-multicast = eth0.45
upstream-interface-fcc = pppoe-iptv
upstream-interface-rtsp = pppoe-iptv

混合配置示例:默认使用 eth0,但 FCC 使用更快的 eth1

upstream-interface = eth0

upstream-interface-fcc = eth1

优先级:upstream-interface-{multicast,fcc,rtsp} > upstream-interface > 系统路由表

外部 M3U 配置(支持 file://, http://, https://)

注意:HTTP/HTTPS 需要安装 curl 命令

external-m3u = http://192.168.88.101:5688/index.php?token=5383f9a7fe&live=m3u

或使用本地文件

#external-m3u =

外部 M3U 更新间隔(秒)

默认 7200(2 小时),设为 0 禁用自动更新

external-m3u-update-interval = 7200

组播周期性重新加入间隔(秒,默认: 0 禁用)

设置为正值(如 60)以周期性重新加入组播组

这是针对以下网络环境的兼容性解决方案:

- 启用 IGMP snooping 的交换机在没有路由器 IGMP Query 时超时

- 配置不当的网络设备会丢弃组播成员关系

推荐值: 30-120 秒(小于典型交换机超时 260 秒)

注意:默认禁用(0),仅在遇到组播流中断时才需要启用

mcast-rejoin-interval = 60

FCC 监听媒体流端口范围(可选,格式: 起始-结束,默认随机端口)

fcc-listen-port-range = 40000-40100

缓冲池最大缓冲区数量(默认: 16384)

每个缓冲区 1536 字节,16384 个约占用 24MB 内存

增大此值以提高多客户端并发时的吞吐量,例如设置为 32768 或更高

buffer-pool-max-size = 163840

启用零拷贝发送以提升性能(默认: no)

设为 yes/true/on/1 以启用零拷贝

需要内核支持 MSG_ZEROCOPY (Linux 4.14+)

在支持的设备上可提升吞吐量并降低 CPU 占用,特别是在高并发负载下

如果你的 rtp2httpd 位于反向代理之后 (nginx/caddy/lucky 等),不建议开启这个选项

zerocopy-on-send = yes

启用视频快照功能(默认: no)

启用后可通过 snapshot=1 查询参数获取视频流的实时快照

video-snapshot = no

FFmpeg 可执行文件路径(默认: ffmpeg,使用系统 PATH)

如果 ffmpeg 不在 PATH 中或想使用特定版本,请指定完整路径

ffmpeg-path = /usr/bin/ffmpeg

FFmpeg 额外参数(默认: -hwaccel none)

这些参数在生成快照时传递给 ffmpeg

常用选项: -hwaccel none, -hwaccel auto, -hwaccel vaapi, -hwaccel qsv

ffmpeg-args = -hwaccel none

[bind]

监听所有地址的 5140 端口

  • 5140

监听特定 IP 的 8081 端口

#192.168.1.1 8081

支持多个监听地址

[services] 内可以直接编写以 #EXTM3U 开头的 m3u 节目清单

和 external-m3u 功能类似,只是直接把 m3u 写在了配置文件内`

组播可以正常播放,单播一直没有测试成功!fcc偶尔一次能够成功!见上面的相关日志!

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions