可以用VLC media player播放,具体 *** 作步骤如下:
1、首先,在安装了VLC的计算机上单击“开始”,然后单击所有程序,如下图所示,然后进入下一步。
2、其次,找到VLC media player并点击打开,如下图所示,然后进入下一步。
3、接着,在下方红框中粘贴rtmp流媒体地址,然后单击播放,如下图所示,然后进入下一步。
4、最后,如果网络不好,可以单击缓存处,将缓存值设置的大点,就可以流畅地播放视频了,如下图所示。这样,问题就解决了。
安卓设备上的播放——Vitamio
安卓设备30以上原生支持hls,但是不支持rtmp,为了统一以及低版本兼容,可以使用第三方的一个播放器库——vitamio。
hls播放
如果仅需要在移动设备的WebView上播放,可以选择使用html中嵌入hls播放。如下html能够在所有Safari或者安卓30以上的WebView上播放。这样就不需要使用第三方的播放器。
VideoJS
如果要让网页支持在所有浏览器上播放,就需要使用第三方的播放器。VideoJs是一个较好的播放器库,完全免费,不像JWPlayer一样需要付费才能使用一些高级功能。
视频编码有几种方式:
1硬编码,使用MediaCodec实现
2软编码,使用FFmpeg或者libx264库来实现。
本文分享在Android平台视频编码-软编码的实现,也就是用FFmpeg来实现视频的编码,rtmp推流到服务器上,相机采集视频将在下一篇文章分享。
流媒体服务器使用 nginx-rtmp-module 来进行搭建。
本文所使用FFmpeg的版本是41,关于FFmpeg编译成Android平台so库如果有需要,我将在下一篇文章分享说明。
视频编码比较耗cpu,上传视频数据的会耗网络io,所以需要开启新线程去处理,这里我用HandlerThread来处理视频的编码上传。
初始化编码相关 *** 作
这里我们使用的是FFmpeg,所以在编码前我们会先做一些初始化以及参数设置工作。
FFmpeg初始化
av_register_all()
创建输出格式上下文
avformat_alloc_output_context2()
获取编码器
avcodec_find_encoder(AV_CODEC_ID_H264) 获取H264的编码器
设置编码器参数
使用给定的编码器和参数初始化编码上下文
avcodec_open2(pCodecCtx, pCodec, ¶m)
创建视频流
video_st = avformat_new_stream(ofmt_ctx, pCodec)
打开输出上下文
avio_open(&ofmt_ctx->pb, out_path, AVIO_FLAG_READ_WRITE)
写入输出头信息
avformat_write_header(ofmt_ctx, NULL)
像素格式转换
AV_PIX_FMT_YUV420P,它是纯平面存储。总共三个平面,分别存放,Y、U、V数据。
当图像宽是width,高是height时,Y分量的大小就是width×heitht,而U是width×heitht/4,V也是U是width×heitht/4。
H264编码
首先我们需要了解两个数据结构AVFrame、AVPacket
AVFrame存放的是原始数据、AVPacket存放的是编码后的数据。
创建AVPacket
av_new_packet(&enc_pkt, picture_size);
开始编码
ret = avcodec_encode_video2(pCodecCtx, pFrameYUV);
输出一帧编码后的视频数据
ret = av_write_frame(pCodecCtx, &enc_pkt);
释放资源
小伙伴们有疑问的可以在下方评论区评论。
想要实现手机直播视频,可以关注微赞直播。
微赞专注于企业直播服务多年,高效助力企业营销。微赞直播从解决企业营销痛点出发,内置多种互动营销方式, 数据分析与云端实时安全存储等功能,可实现高清直播且支持百万观看不卡顿。
微赞建立于微信生态之上的专业企业直播平台,坐拥微信流量优势与社交优势,嵌入企业微信公众号, 微信端一键创建和分享直播
累计企业直播超400万场,服务了包括腾讯、京东、百度、 中国银行、湖南广电等超100万企业用户,覆盖221个国家和地区的5亿用户。
这个RTMP推流地址的意思是指:这个直播网络流要向哪个流媒体服务器推送。 所以应该是流媒体服务器给出这个地址。 也就是说服务器上安装的流媒体系统如800li直播系统会给出RTMP推流地址,也就是发布地址,意思是把这个流发布到哪个服务器进行互联网数据实时分发。
你是指在云直播平台如何获取RTMP推流地址吗?不同的云直播平台规则不同,要问具体的平台客服。
以上就是关于如何播放这些RTMP地址全部的内容,包括:如何播放这些RTMP地址、如何在网页端和移动端播放rtmp和hls视频流、Android平台FFmpeg实现rtmp推流-C++的实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)