ffmedia rtsp推流,vlc无法拉流解码

./demo rtsp://admin:Admin12345@192.168.1.100 -o 1280x720 -d 0 -r 90

可以直接读取rtsp输入,解码,drm输出到屏幕。

./demo rtsp://admin:Admin12345@192.168.1.100 -e H264  -p 554

./demo 可以读取rtsp输入,解码,h264编码后,rtsp推流后,vlc拉流不报错无法解码播放 (-m out.mp4 无法保存数据)

换一个端口号推流, 比如 -p 1554

本帖最后由 wx__AxJ5zO 于 2024-3-21 09:59 编辑

dengkx 发表于 2023-8-30 16:34
换一个端口号推流, 比如 -p 1554

不会啊,你第一个如果可以的话,后面那个几个应该也可以才对,因为demo也是将h264解码成nv12再编码成h264去推流的。
我这边用vlc拉没出现你说的那个问题,试试ffplay看看?


dengkx 发表于 2023-8-31 10:20
不会啊,你第一个如果可以的话,后面那个几个应该也可以才对,因为demo也是将h264解码成nv12再编码成h264去 …

ffplay 拉取不到数据。
又尝试了输入rtsp数据,解码后,编码,再解码,可以drm显示。
有没有可能是推流时编码器需要配置参数。

解码输入码流的方式:分帧与不分帧。裸码流输入有两种,一种是按帧分段的数据,每一个输入给decode_put_packet函数的数据包都包含完整的一帧,不多也不少。在这种情况下,MPP可以直接按包处理码流。另一种是按长度读取数据,无法判断一个包的数据是否为完整的一帧,需要MPP内部进行分帧处理。

本帖最后由 dengkx 于 2023-8-31 17:19 编辑

wx__AxJ5zO 发表于 2023-8-31 15:52
ffplay 拉取不到数据。
又尝试了输入rtsp数据,解码后,编码,再解码,可以drm显示。
有没有可能是推流 …

和那个没关系,你试一下 ./demo rtsp://xxx -e h264 -m out.mp4

然后再用demo 播放看看可不可以:./demo out.mp4 -x -s
或者推流不行时等十秒然后按q键退出,然后发下退出的log看看。

本帖最后由 wx__AxJ5zO 于 2023-9-1 15:31 编辑

dengkx 发表于 2023-8-31 17:16
和那个没关系,你试一下 ./demo rtsp://xxx -e h264 -m out.mp4

然后再用demo 播放看看可不可以:./d …

./demo rtsp://xxx -e h264 -m out.mp4
可以保存MP4视频


(保存mp4时会出现创建了mp4文件,但是在程序运行时刷新文件大小不会变,
按q键退出后刷新mp4文件立马有数据,而且非正常退出mp4不会有数据)
./demo out.mp4 -x -s
运行-x -s不能显示,-d 0可以正常显示

q退出,就这些信息.

mpp[135669]: mpp_rt: NOT found ion allocator
mpp[135669]: mpp_rt: found drm allocator
mpp[135669]: mpp_info: mpp version: 49f29006 author: Jeffy Chen 2021-08-04 [drm]: Add mmap flag detection
mpp[135669]: mpp_info: mpp version: 49f29006 author: Jeffy Chen 2021-08-04 [drm]: Add mmap flag detection
mpp[135669]: mpp_enc: MPP_ENC_SET_RC_CFG bps 2048000 [1920000 : 2176000] fps [30:30] gop 60
mpp[135669]: h264e_api_v2: MPP_ENC_SET_PREP_CFG w:h [1920:1080] stride [1920:1088]
mpp[135669]: mpp_enc: send header for set cfg change input/format
mpp[135669]: mpp_enc: mode cbr bps [1920000:2048000:2176000] fps fix [30/1] → fix [30/1] gop i [60] v [0]
mpp[135669]: mpp_buffer: ~MppBufferService cleaning misc group

本帖最后由 dengkx 于 2023-9-2 11:09 编辑

wx__AxJ5zO 发表于 2023-9-1 09:21
./demo rtsp://xxx -e h264 -m out.mp4
可以保存MP4视频

rtsp正常拉流,mp4文件可以正常保存,-x不能播放原因是-x是基于x11窗口显示的先执行: export DISPLAY=:0
直接杀掉程序也是能正常保存mp4文件的,这个是同步写入文件的,不可能杀掉没数据,运行时通过ssh登录板子ls -l 刷新查看文件大小,不要用win的工具查看
rtsp服务创建正常,编码数据正常,已和客户端创建连接。检查是否有防火墙设置或直接在板子拉流看看行不行?

问题解决了吗?我也有同样的问题,编码后推流不行

本帖最后由 wx__AxJ5zO 于 2024-3-5 15:02 编辑

dengkx 发表于 2023-9-2 10:57
rtsp正常拉流,mp4文件可以正常保存,-x不能播放原因是-x是基于x11窗口显示的先执行: export DISPLAY=:0 …

python3 ./demo.py -i ./1.h264 -o 1280x720 -e 0 -p 1935
尝试使用了h264文件直接推流,vlc拉流是黑屏,可能是推流模块有问题。

孟远螓John.M 发表于 2024-2-23 20:06
问题解决了吗?我也有同样的问题,编码后推流不行

可能是源码的服务器部分有问题,推流不管什么格式都没有成功,你可以联系他们的开发

无法推流2.2.4解决方法:
简单的处理就是把编码模块默认gop参数更改为其他就可以了。
— a/demo/demo.cpp
+++ b/demo/demo.cpp
@@ -545,7 +545,7 @@ SOURCE_CREATED:
#endif

 if (inst_conf->enc_enabled) {
  •    shared_ptr<ModuleMppEnc> enc = make_shared<ModuleMppEnc>(inst_conf->encode_type);
    
  •    shared_ptr<ModuleMppEnc> enc = make_shared<ModuleMppEnc>(inst_conf->encode_type, 30, 30);
       enc->setProductor(inst->last_module);
       enc->setBufferCount(8);
       enc->setDuration(0);  // Use the input source timestamp
    

孟远螓John.M 发表于 2024-2-23 20:06
问题解决了吗?我也有同样的问题,编码后推流不行

已解决,解决方案看帖子

感谢!