news 2026/9/1 11:56:03

GStreamer 2(TODO)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GStreamer 2(TODO)

TODO

gst-launch-1.0 -v \ libcamerasrc ! \ video/x-raw,format=NV12,width=640,height=480,framerate=30/1 ! \ videoconvert ! \ x264enc tune=zerolatency bitrate=500 key-int-max=30 ! \ h264parse ! \ mpegtsmux name=mux ! \ tcpserversink host=0.0.0.0 port=5000 sync=false

SSH 端口开放,但目前没有配置免密钥登录(本机也没有 `sshpass`),所以规划阶段暂时无法登进树莓派查实际环境——这会作为执行阶段的第一步。在写计划前,我先核实两个关键技术事实(树莓派 5 的硬件编解码能力、官方 GStreamer 摄像头元素),确保学习路线里的例子是对的。网络搜索工具当前不可用(额度问题),不过不影响规划——树莓派 5 的关键事实我有把握,并会在执行阶段用 `gst-inspect-1.0` 在实机上验证。下面是基于实测现状的完整学习计划。

---

# GStreamer 学习计划(Ubuntu + 树莓派 5 双机协同)

## 一、现状盘点(已实测确认)

| 项目 | Ubuntu 本机 (192.168.124.22) | 树莓派 5 (192.168.124.34) |
|---|---|---|
| 网络 | 同网段 eth0,✅ ping 通 (RTT ~5ms) | SSH 端口 22 开放 |
| GStreamer | ❌ 完全未装(工具、开发包、Python 绑定都没有) | ⏳ 待登录后确认 |
| SSH 免密 | ❌ 无密钥登录,本机无 `sshpass` | 密码 000000 可用 |
| 编译工具 | 有 gcc/ninja,缺 meson | 待确认 |

**树莓派 5 编解码关键特性**(学习路线据此设计):BCM2712 **移除了 H.264 硬件编码器**(Pi 4 有,Pi 5 没有),只保留 **HEVC 硬件解码**。所以在 Pi 5 上:编码用软件 `x264enc`,H.264 解码用软件 `avdec_h264`,HEVC 解码可走硬解。这反而更适合学习——软编解码的行为完全透明可观察。具体元素名以实机 `gst-inspect-1.0` 结果为准。

## 二、学习路线(5 个阶段,约 4~6 周,每天 30-60 分钟)

### 第 0 步:环境准备(切到 Act 模式后我来做)
1. **打通 SSH**:本机装 `sshpass`(或 `ssh-copy-id` 配密钥,更推荐,以后免密码)
2. **检查树莓派**:系统版本、`rpicam-hello` 确认摄像头、`gst-inspect-1.0` 列出可用元素(重点查 `rpicamsrc`/`libcamerasrc`、`x264enc`、`avdec_h264`、HEVC 解码元素)
3. **两台机器装齐**:`gstreamer1.0-tools` + base/good/bad/ugly/libav 插件;本机另装 `python3-gi`、`libgstreamer*-dev`、`meson`(C 阶段用)、`gst-rtsp-server` 开发包
4. **建实验仓库**:在工作区新建 `gstreamer-lab/`(含 `pipelines/`、`python/`、`c/`、`notes/`),git 管理,每个练习一条笔记

### 阶段 1:命令行建立直觉(约 1 周,纯本机)
核心概念:**element / pad / caps / buffer / event / bus / caps 协商**
- `gst-inspect-1.0 videotestsrc` 逐个拆解元素——这是最重要的日常动作
- 练习管线:测试源预览 → `x264enc ! mp4mux ! filesink` 录像 → `tee` 多分支(预览+录像+截图)→ `textoverlay` 叠字 → `gst-play-1.0` 变速播放
- 进阶习惯:`GST_DEBUG=3` 观察协商过程,`gst-discoverer-1.0` 分析媒体文件

### 阶段 2:树莓派出图与编解码(约 1 周)
- 摄像头预览/录像:`rpicamsrc` 或 `libcamerasrc ! x264enc ! mp4mux ! filesink`
- **第一条双机链路**:Pi `! x264enc ! rtph264pay ! udpsink host=192.168.124.22` → Ubuntu `udpsrc ! rtph264depay ! avdec_h264 ! autovideosink`
- 对比 MJPEG vs H.264 的延迟/画质/码率差异

### 阶段 3:网络流双机项目(1~2 周,最有成就感的部分)
- **项目 A**:`tee` 三分支——Pi 摄像头同时“预览+存文件+推流”,Ubuntu 收流显示并录像
- **项目 B**:Pi 上写 **RTSP 服务器**(gst-rtsp-server,Python 起步),Ubuntu/VLC 拉流,加 `timeoverlay` 测延迟
- **项目 C**:Pi 推 MJPEG 流 → Ubuntu `appsink` + OpenCV 做运动检测
- 延迟专题:`rtpjitterbuffer`、`latency` 属性、`GST_TRACERS=latency`

### 阶段 4:编程(与阶段 2/3 交错进行)
- **Python(PyGObject)入门**:动态管线(`pad-added` 回调)、bus 消息处理、`appsink`/`appsrc` 与 numpy 互操作——语法简单,能快速验证想法
- **C 进阶**:`gst_init`/手工构建管线/bus watch 写一个小播放器 → appsink 处理帧 → 最后写一个**自定义 element**(如水印),用 meson 构建——这是真正理解 GStreamer 内部的一步

### 阶段 5:进阶选学
`webrtcbin`(浏览器直接看 Pi 摄像头)、自定义 bin、`encodebin`/encoding profile、插件编写完整流程

## 三、资料
- 官方 **Application Development Manual** + **20 篇 Basic Tutorials**(gstreamer.freedesktop.org/documentation)——主线教材,边做边读对应章节
- 官方 API 文档 + design docs(caps negotiation、buffering)
- 树莓派官方 camera 文档;每个练习在 `notes/` 里记一句心得

## 四、双机分工逻辑
**树莓派 = 真实视频源 + 边缘编码器**(摄像头、软编码),**Ubuntu = 接收端 + 开发调试机**(收流、OpenCV 处理、写代码、看文档)——这正好复刻真实流媒体系统的两端,学到的直接就是工程能力。

---

计划的关键取舍:**先 CLI 后代码、先 Python 后 C、每阶段都落到两台机器之间的真实项目**,避免只看文档不动手。最后确认一个影响细节安排的问题:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 11:55:20

晶圆级架构如何破解大模型推理的“内存墙”瓶颈

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/1 11:54:31

OpenMed用药对账实战:跨医嘱单自动核对与差异检测

OpenMed用药对账实战:跨医嘱单自动核对与差异检测 【免费下载链接】openmed Local-first healthcare AI: clinical NER & HIPAA PII de-identification that runs 100% on-device. 2,200 medical models, 21 languages, Apple MLX Python, no cloud, no patien…

作者头像 李华
网站建设 2026/9/1 11:54:24

DeepTutor 上手指南:免费部署你自己的 AI 智能导师

DeepTutor 上手指南:免费部署你自己的 AI 智能导师 【免费下载链接】DeepTutor DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/. 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor DeepTutor 是一款免费开源的 AI 智能导…

作者头像 李华
网站建设 2026/9/1 11:53:56

ACP协议详解:让AI Agent无缝接入VS Code、JetBrains等主流编辑器

之前一直在折腾 AI Agent 与本地代码库的对接问题,最困扰我的不是模型能力,而是“AI 在网页端能看代码,进了编辑器就失灵”。要么把代码复制到聊天框,要么让 Agent 直接操作整个文件系统,权限大得让人不放心。后来接触…

作者头像 李华
网站建设 2026/9/1 11:52:54

从六千用户部署看GTM AI智能体的工程实践与避坑指南

上个月做部署复盘时,我们再次确认了一个判断:GTM AI智能体的价值,不在于它能像聊天机器人一样陪人说话,而在于它能不能把销售、市场、客户成功团队每天重复的判断和动作,稳定地变成自动化流程。当时我们的智能体已经部…

作者头像 李华