21ic电子技术开发论坛

标题: 【STM32N6570-DK测评】3、VENC RTSP视频流服务 [打印本页]

作者: sujingliang    时间: 2025-4-22 11:02
标题: 【STM32N6570-DK测评】3、VENC RTSP视频流服务
本帖最后由 sujingliang 于 2025-4-22 11:36 编辑

STM32N6570-DK集成了视频编码器(VENC)提供视频编码硬件加速,可以用于编码1080p 30视频、H264格式的流、3亿像素/秒的静止图像(JPEG)。VENC具有128K字节的视频RAM(VENCRAM),当未使用VENC时,VENCRAM也可以用于系统连续扩展访问。
上游外围设备(如摄像头)直接连接到VENC,无需写入完整帧缓冲区,不需要外部带宽。

本文以例程STM32N6570-DK\Applications\VENC\VENC_JPEG_Encoding为例,演示N6如何搭建RTSP视频流服务,。

该应用程序旨在传输格式H264格式编码的视频流。将H264帧通过以太网外设发送,使用RTP协议(实时传输协议)连接到远程PC客户端如VLC媒体播放器进行播放。


1、例程编译
打开STM32N6570-DK\Applications\VENC\VENC_RTSP_Server\STM32CubeIDE下的.preject工程。在STM32CubeIDE可以看到导入了2个子工程
[attach]2396618[/attach]
分别对FSBL、和Appli工程进行编译

2、烧录

1)BOOT1设置为1。
2)使用以下命令调用CubeProgrammer,向生成的Appli二进制Project.bin添加一个签名标头
STM32_SigningTool_CLI.exe -bin Project.bin -nk -of 0x80000000 -t fsbl -o Project-trusted.bin -hv 2.3 -dump Project-trusted.bin
生成的二进制文件是Project-trasted.bin。
[attach]2396626[/attach]

使用CubeProgramer时,将Appli 二进制文件及其标头(Project-trusted.bin)加载到DK板外部Flash的地址0x7010'0000处。
[attach]2396628[/attach]
[attach]2396630[/attach]
3)使用以下命令调用CubeProgrammer,向生成的FSBL二进制FSBL.bin添加一个签名标头。

生成的二进制文件是FSBL-trasted.bin。
4)再次使用CubeProgramer时,将FSBL二进制文件及其标头(FSBL-rested.bin)加载到DK板外部Flash的地址0x70000000处。

5)将启动模式设置为从外部闪存启动(BOOT0开关位置为0,BOOT1开关位置为0).按下重置按钮。然后,代码在从外部Flash模式启动时执行。


3、运行

开发板需要连接上网线后再上电,UART输出:
[attach]2396632[/attach]
说明RTSP服务已经建立,等待连接,连接地址rtsp://192.168.31.253:554

PC机上需安装
[attach]2396634[/attach]

打开VLC,媒体->打开网络串流,做如下配置:
[attach]2396638[/attach]
URL:rtsp://192.168.31.253:554
缓存:200ms
按下播放

显示摄像头拍摄信息:

[attach]2396640[/attach]

[attach]2396642[/attach]

例程成度较高,要求不高可以直接使用。
例程使用了NetXDuo、STM32_ISP、ThreadX、VideoEncoder等技术,如果个人从头搭建难度不小。



作者: xhackerustc    时间: 2025-4-23 12:39
因为它用了ThreadX,NetX,基本是个调度+协议栈吧,换个SoC又要重新搞。这正说明zephyr之类的有完整生态和OS抽象的RTOS优势所在,一旦应用写好就可以在所有本RTOS支持的平台上跑,现在很多厂商在往zephyr迁移,包括ST在内的是直接参与zephry开发的,有linux那味了





欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)