全志D1-H芯片 如何在tina使用tplayerdemo 进行rtsp拉流说明?

make menuconfig 选项rtsp

Allwinner                                                                                                                                                                                                                         
 libcedarx....................................... libcedarx  for allwinner (PACKAGE_libcedarx [=y])                                                                                                                                              
  Select cedarx configuration options    
   [*] Support rtsp stream

打上附件的 "support_rtsp.patch"补丁(主要是开启rtsp依赖的模块, 后续会加宏配置好,只选rtsp就好)
附件补丁在文章底部阅读原文获得

diff --git a/allwinner/tina_multimedia/libcedarx/libcore/parser/Makefile.am b/allwinner/tina_multimedia/libcedarx/libcore/parser/Makefile.am
index f33af3743..5d1aeaf0c 100755
--- a/allwinner/tina_multimedia/libcedarx/libcore/parser/Makefile.am
+++ b/allwinner/tina_multimedia/libcedarx/libcore/parser/Makefile.am
@@ -72,4 +72,7 @@ if PLS_PARSER_ENABLE
 SUBDIRS += pls
 endif
 
-SUBDIRS += base
\ No newline at end of file
+SUBDIRS += remux
+
+SUBDIRS += base
+
diff --git a/allwinner/tina_multimedia/libcedarx/libcore/parser/base/CdxParser.c b/allwinner/tina_multimedia/libcedarx/libcore/parser/base/CdxParser.c
index 44305f3c6..a24273fbc 100755
--- a/allwinner/tina_multimedia/libcedarx/libcore/parser/base/CdxParser.c
+++ b/allwinner/tina_multimedia/libcedarx/libcore/parser/base/CdxParser.c
@@ -50,7 +50,7 @@ static struct ParserUriKeyInfoS asfKeyInfo =
 };
 #endif
 
-#if 0
+#if 1
 extern CdxParserCreatorT remuxParserCtor;
 static struct ParserUriKeyInfoS remuxKeyInfo =
 {
@@ -460,7 +460,7 @@ void AwParserInit(void)
     AwParserRegister(&movParserCtor, CDX_PARSER_MOV, &movKeyInfo);
 #endif
 
-#if 0
+#if 1
     AwParserRegister(&remuxParserCtor, CDX_PARSER_REMUX, &remuxKeyInfo);
 #endif
 
diff --git a/allwinner/tina_multimedia/libcedarx/libcore/parser/base/Makefile.am b/allwinner/tina_multimedia/libcedarx/libcore/parser/base/Makefile.am
index 9dbb73590..86174f94e 100755
--- a/allwinner/tina_multimedia/libcedarx/libcore/parser/base/Makefile.am
+++ b/allwinner/tina_multimedia/libcedarx/libcore/parser/base/Makefile.am
@@ -65,6 +65,8 @@ libcdx_parser_la_LIBADD += $(top_srcdir)/libcore/parser/avi/libcdx_avi_parser.la
 libcdx_parser_la_CFLAGS += -DAVI_PARSER_ENABLE
 endif
 
+libcdx_parser_la_LIBADD += $(top_srcdir)/libcore/parser/remux/libcdx_remux_parser.la
+
 if TS_PARSER_ENABLE
 libcdx_parser_la_LIBADD += $(top_srcdir)/libcore/parser/ts/libcdx_ts_parser.la
 libcdx_parser_la_CFLAGS += -DTS_PARSER_ENABLE

使用ffmpeg 进行推流

sudo ffmpeg -stream_loop -1 -i 720x480.mp4 -vcodec copy -acodec aac -rtsp_transport tcp -f rtsp rtsp://1.116.32.155/media/test.mp4

拉流

4.1 wifi联网
4.2 tplayerdemo rtsp://1.116.32.155/media/test.mp4

rtsp 播放效果:
在这里插入图片描述

原贴链接:https://bbs.aw-ol.com/topic/1318
全志在线开发者交流企鹅群(客服机器人24小时在线解答):498263967
资源获取、问题讨论可以到全志在线开发者社区进行:https://www.aw-ol.com
全志及开发者最新动态可以关注全志在线微信公众号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ffmpeg 是一个强大的音视频处理工具,它可以用来进行各种音视频格式的编解码、转码、剪辑等操作。下面是基于 C++ 使用 ffmpeg 进行 RTSP 和推程: 1. 引入 ffmpeg 库:首先需要在项目中引入 ffmpeg 库,可以使用静态库或者动态库,具体方法不再赘述。 2. 初始化 ffmpeg:在使用 ffmpeg 前,需要初始化 ffmpeg,这可以通过调用 av_register_all() 函数实现。 3. 创建 AVFormatContext:创建一个 AVFormatContext 对象,用于存储音视频的相关信息,包括音视频编码格式、的时间基等信息。可以通过调用 avformat_alloc_context() 函数来创建。 4. 打开 RTSP :调用 avformat_open_input() 函数打开 RTSP ,传入 RTSP 地址、AVFormatContext 对象等参数,函数会自动解析出音视频的信息并存储到 AVFormatContext 对象中。 5. 查找音视频:通过调用 avformat_find_stream_info() 函数,可以查找音视频的索引,该函数会自动解析音视频的信息,并将音视频的索引存储到 AVFormatContext 对象中。 6. 获取音视频的信息:可以通过遍历 AVFormatContext 对象的 streams 属性,获取每个音视频的详细信息,包括编码格式、分辨率、码率等等。 7. 打开音视频解码器:对于每个音视频,需要打开相应的解码器,可以通过调用 avcodec_find_decoder() 函数查找对应的解码器,然后调用 avcodec_open2() 函数打开解码器。 8. 创建 AVFrame 和 AVPacket:解码音视频帧需要使用 AVFrame 和 AVPacket 对象,可以通过调用 av_frame_alloc() 和 av_packet_alloc() 函数创建。 9. 读取音视频帧:通过调用 av_read_frame() 函数读取音视频帧,该函数会返回一个 AVPacket 对象,包含了音视频帧的数据和相关信息。 10. 解码音视频帧:根据 AVPacket 对象中的信息,可以调用对应的解码器进行解码,解码后的结果存储在 AVFrame 对象中。 11. 处理音视频帧:可以对解码后的音视频帧进行各种处理,比如转换格式、合并音视频等。 12. 推:可以使用 avformat_new_stream() 函数创建一个新的音视频,并设置相应的参数,然后使用 avio_open() 函数打开一个输出,最后调用 avformat_write_header() 函数开始推。 13. 写入音视频帧:对于每一帧音视频数据,可以调用 av_interleaved_write_frame() 函数写入输出中,该函数会自动进行封装和编码。 14. 关闭和解码器:最后记得关闭输入、输出和解码器,释放相应的资源。 以上是基于 C++ 使用 ffmpeg 进行 RTSP 和推的大致程,具体实现还需要根据具体的需求和情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值