# Termux_Android **Repository Path**: 17185360214/termux_-android ## Basic Information - **Project Name**: Termux_Android - **Description**: 使用Termux部署: 推流服务 Srs 前端服务vue 后端服务 java - **Primary Language**: HTML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-22 - **Last Updated**: 2026-07-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 Termux 的 SRS 流媒体服务器搭建与使用教程 ## 一、准备工作 - 已安装 Termux(Android 终端模拟器) - 设备已连接网络 - 后续操作可能需要存储权限,建议提前准备 ## 二、安装 SRS 流媒体服务器 ### 步骤 1:更新软件包列表 打开 Termux,输入以下命令更新系统包(提示选择时输入y确认): ```bash pkg update && pkg upgrade ``` ### 步骤 2:安装依赖工具 依次执行以下命令,安装编译和运行 SRS 所需的工具: ```bash # 安装编译工具与git apt install build-essential git # 安装基础工具 pkg install -y which binutils # 安装视频处理工具(用于推流测试和格式转换) pkg install -y ffmpeg # 安装文本编辑器(用于修改配置文件) pkg install -y nano ``` ### 步骤 3:克隆 SRS 仓库 克隆 SRS 源码到本地(使用 gitee 镜像,提升速度): ```bash git clone -b develop https://gitee.com/ossrs/srs.git ``` ### 步骤 4:进入目录并配置权限 ```bash # 进入SRS主干目录 cd srs/trunk # 赋予配置脚本可执行权限 chmod +x configure ``` ### 步骤 5:配置编译参数(最小化配置) 禁用不必要的功能,仅保留核心流媒体功能,命令如下: ```bash ./configure --prefix=/data/data/com.termux/files/usr/local/srs \ --ssl=off --rtc=off --h265=off --srt=off --nasm=off --backtrace=off \ --utest=off --https=off --ffmpeg-fit=off --ffmpeg-opus=off --apm=off \ --gprof=off --sanitizer=off --srtp-nasm=off --sys-ssl=off --sys-srt=off \ --sys-ffmpeg=off --sys-srtp=off ``` **参数说明**:禁用 SSL、WebRTC、H.265 等非核心功能,减少编译复杂度 ### 步骤 6:编译 SRS - 首次编译: ```bash make ``` - 重新编译(如修改配置后): ```bash make clean && make ``` ## 三、配置与启动 SRS 服务 ### 步骤 1:修改配置文件(基础转发功能) 使用 nano 编辑 SRS 核心配置文件`conf/srs.conf`: ```bash nano conf/srs.conf ``` **基础配置内容**(默认已包含,建议检查确认): ```conf listen 1935; # RTMP协议端口 max_connections 1000; # 最大连接数 srs_log_tank file; # 日志输出到文件 srs_log_file ./objs/srs.log; # 日志文件路径 daemon off; # 非后台运行(便于调试) http_api { enabled on; # 启用HTTP API listen 1985; # API端口 } http_server { enabled on; # 启用HTTP服务器 listen 8080; # HTTP端口 dir ./objs/nginx/html; # HTTP服务目录 } vhost __defaultVhost__ { # 基础转发配置,无额外设置时保持默认 } ``` **编辑操作**:按`Ctrl+O`保存,`Ctrl+X`退出编辑器 ### 步骤 2:启动 SRS 服务 ```bash ./objs/srs -c conf/srs.conf ``` 启动成功后,终端将显示服务运行状态。 ## 四、测试流媒体转发功能 ### 方式 1:使用 ffmpeg 推流测试 在 Termux 中另开窗口,执行以下命令生成测试视频并推流: ```bash ffmpeg -re -f lavfi -i testsrc=duration=30:size=1280x720:rate=30 -f flv rtmp://localhost:1935/live/test ``` **参数说明**:生成 30 秒、1280x720 分辨率、30fps 的测试视频,推送到`rtmp://localhost:1935/live/test`(live为应用名,test为流名) ### 方式 2:使用 OBS 推流测试 1. 打开 OBS,添加视频源; 2. 配置推流地址:`rtmp://<手机IP>:1935/live`,流密钥为`test`; > **提示**:通过`ifconfig`在 Termux 中查询设备 IP ### 拉流测试(验证转发) 使用 VLC 播放器拉流: 1. 打开 VLC,选择 “媒体”→“打开网络串流”; 2. 输入地址:`rtmp://<手机IP>:1935/live/test`,点击播放,能正常显示视频即表示转发成功。 ## 五、配置流媒体本地存储 ### 步骤 1:修改配置文件启用 DVR 编辑`conf/srs.conf`,在`vhost __defaultVhost__`节点中添加 DVR 配置: ```bash nano conf/srs.conf ``` 添加内容如下: ```conf vhost __defaultVhost__ { dvr { enabled on; # 启用DVR存储 dvr_path ./objs/dvr/[app]/[stream]/[timestamp].flv; # 存储路径(按应用名、流名、时间戳分类) dvr_plan segment; # 按时间段分段存储 dvr_duration 60; # 每段60秒 dvr_wait_keyframe on; # 等待关键帧再开始存储(保证视频完整性) } } ``` 保存并退出编辑器。 ### 步骤 2:创建存储目录并重启服务 ```bash # 创建DVR和HLS(可选)存储目录 mkdir -p ./objs/dvr ./objs/hls # 终止当前SRS服务 pkill srs # 重启服务使配置生效 ./objs/srs -c conf/srs.conf ``` ### 步骤 3:验证本地存储 1. 重新执行推流命令(如 ffmpeg 推流); 2. 推流结束后,查看存储的文件: ```bash ls -R ./objs/dvr # 递归查看存储目录 ``` 正常情况下,`./objs/dvr/live/test`目录下会出现以时间戳命名的`.flv`文件。 ## 六、后续操作:格式转换与文件管理 ### 1. FLV 转 MP4(避免重复转换) 将 FLV 格式批量转换为兼容性更强的 MP4 格式: ```bash find ./objs/dvr -type f -name '*.flv' -print0 | while IFS= read -r -d '' f; do out="${f%.flv}.mp4" # 生成同名MP4路径 [ -e "$out" ] && continue # 若MP4已存在则跳过 ffmpeg -y -i "$f" -c copy -movflags +faststart "$out" # 快速转换(不重新编码) done ``` ### 2. 拷贝文件到手机相册 ```bash # 授予Termux存储权限(首次执行会弹窗请求,选择允许) termux-setup-storage # 创建相册目录 mkdir -p ~/storage/shared/Movies/SRS # 拷贝MP4文件到相册(同名文件不覆盖) cp -n ./objs/dvr/live/test/*.mp4 ~/storage/shared/Movies/SRS/ ``` ### 3. 清空存储目录 如需删除已存储的视频文件: ```bash rm -rf ./objs/dvr/* ``` ## 七、日志查看与问题排查 查看实时日志(最后 50 行并持续刷新): ```bash tail -n 50 -f ./objs/srs.log ``` ### 常见问题排查: - **推流失败**:检查 SRS 是否启动、1935 端口是否被占用; - **存储目录无文件**:确认`dvr.enabled`已设为`on`,且存储目录权限正常; - **网络连接问题**:通过`ifconfig`确认设备 IP 是否正确。 ## 八、停止服务 如需终止 SRS 服务,执行: ```bash pkill srs ``` ## 参考链接 更多细节可参考:[https://blog.csdn.net/zzhds/article/details/119789461](https://blog.csdn.net/zzhds/article/details/119789461)