用户工具

站点工具


liux:pick_ts_stream

概述

服务器通过udp发送视频流,基本格式为16字节包头+1316字节ts流数据共1332字节。在某些情况下可能需要将流提取出来定位问题,本文档描述基于gstreamer工具gst-launch-1.0及相关插件提取ts流的方法。

1.1 安装gstreamer

apt install -y gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good

安装完成后可见gst-launch-1.0和gst-inspect-1.0命令,前者用于运行多媒体管道pipeline,后者用于查看各种插件信息。

1.2 确认流地址

使用tcpdump抓取流信息,确认ts流发送的组播地址,如231.10.5.84:7080。

1.3 提取ts流

1.3.1 提取到文件

运行命令:gst-launch-1.0 udpsrc skip-first-bytes=16 uri=udp://231.10.5.84:7080 ! filesink location=./out.ts

命令中: udpsrc为udp接收插件,skip-first-bytes表示从头部略过的字节数,idste流格式定义了前16字节为头数据,所以skip-first-bytes=16; uri是接收地址,根据需要填写,本例为231.10.5.84:7080; 命令中filesink为文件保存插件,location定义了保存的文件名称和路径。

1.3.2 UDP转发并使用VLC播放

运行命令:gst-launch-1.0 udpsrc skip-first-bytes=16 uri=udp://231.10.5.84:7080 ! udpsink host=192.168.1.111 port=554

命令中:host指定电脑IP,port指定接收端口。

使用vlc播放ts流:打开网络串流-网络-udp://0.0.0.0:554

注意:需要关注电脑防火墙是否拦截ts流

1.4 分析ts流

使用sz等工具将out.ts文件保存在本地,使用vlc检查文件播放情况、日志、编码等有用信息;使用wireshare分析ts数据包。

liux/pick_ts_stream.txt · 最后更改: 2025/09/08 22:51 (外部编辑)