两种推流协议:
--enable-muxer=whip 编译,安装复杂RTMP 推流(推荐,足够验证完整链路):
winget install ffmpeg 或从 ffmpeg.org/download 下载预编译版apt-get install ffmpeg(Docker 镜像已内置 /usr/bin/ffmpeg,路径填 ffmpeg 即可)ffmpeg -muxers | findstr flv,输出含 flv 即支持 RTMPWebRTC 直推(可选,仅平台不支持 RTMP 转换时需要):
./configure --enable-muxer=whip --enable-libx264 --enable-libopus ...ffmpeg -muxers | findstr whip路径填写:
C:\ffmpeg\bin\ffmpeg.exeffmpeg 即可提示:若第三方平台支持 RTMP→WebRTC 转换,安装普通版 ffmpeg 后选择 RTMP 推流即可验证完整链路。
视频格式要求:mp4 格式,H264 编码。RTMP 推流无音频要求;WHIP 推流建议含音频轨道。
最简方式(推荐):在目录中放一个 default.mp4 文件,所有推流都会使用它,无需关心命名规则。Docker 部署可直接用上方「上传视频」按钮把文件传入容器目录(替代 docker cp)。
进阶方式(按相机区分视频):按 {camera_index}-{video_type}.mp4 命名
camera_index:DJI 设备的 payload_index,格式为 type-subtype-gimbalindex,如 165-0-7video_type:镜头类型,取值 normal(普通)/ zoom(变焦)/ wide(广角)/ ir(红外)165-0-7-normal.mp4、165-0-7-zoom.mp4default.mp4camera_index 从哪获取:第三方平台下发 live_start_push 时,video_id 字段格式为 {sn}/{camera_index}/{video_type}-{index},模拟器从中解析 camera_index 匹配文件。用户无需手动查找。
目录示例:
D:/videos/ ├── default.mp4 ← 通用回退(最简,推荐先放这个) ├── 165-0-7-normal.mp4 ← 相机165-0-7 普通镜头 └── 165-0-7-zoom.mp4 ← 相机165-0-7 变焦镜头
媒体上传流程:航线任务完成后,模拟器自动执行 storage_config_get 获取 STS 凭证 → 从本目录读取文件上传到对象存储 → 发 file_upload_callback 通知平台。
支持的文件格式:jpg / jpeg / png / dng / tif / tiff / mp4 / mov / avi
最简方式:目录为空时自动预置示例照片+视频;也可用自己的素材——本地部署直接放入目录,Docker 部署用上方「上传媒体」按钮传入(文件会循环使用)。
降级策略:目录留空或 STS 凭证获取失败时,仅发 file_upload_callback(元数据上报),object_key 指向不存在的文件。平台可验证 MQTT 协议但无法下载真实文件。
提示:配置后无需重启,点击"保存并检测"即生效。与直播推流共享同一持久化配置。
配置修改后点击"保存并检测"将自动重新检测 ffmpeg 能力,无需重启应用。
若本机 ffmpeg 不支持 WHIP,可先安装支持 WHIP 的 ffmpeg,再修改路径后保存。
仅支持 WebRTC (url_type=4),RTMP/GB28181 降级为协议模拟。