LiveRTMP之rtmp流flash播放器无法正常播放问题解决(二)
问题简介
LiveRTMP是LiveQing团队开发的一套简单易用的RTMP推送SDK。本文想讲述下开发过程中遇到的一个问题。问题的现象是使用LiveRTMP推送音视频流到自己搭建的nginx-rtmp服务器,使用ffplay和vlc播放器都能够正常播放,但是使用网页flash播放时,总是会卡住,无法正常播放。
问题解决
开始时有些疑惑,因为ffplay在播放时都没有提示任务警告等异常信息,尝试了多个网页在线播放都是一样的问题,认为问题肯定是在RTMP推送端。
首先想到的是屏蔽掉音频,只推送视频数据,再进行测试。结果让我庆幸,屏蔽掉音频后,果然一切正常。问题就出在音频上,于是开始对AAC相关的部分进行一系列的排查。
网上搜索了一堆资料,分析了一开始的AAC header,以及ADTS头部数据,都是正常的。具体分析过程可网上搜索,博主参考了http://niulei20012001.blog.163.com/blog/static/7514721120130694144813/这篇。本人中提到需要去掉ADTS头部再进行推送,于是又查了些资料,果然在发送过AAC header之后,后面的AAC数据帧中需求去掉ADTS头部。
于是加上了个代码判断上层传下来的数据是否已经包含ADTS,如果包含就去掉。
if (((data[0] & 0xFF) == 0xFF) && ((data[1] & 0xF0) == 0xF0) && (size > 7))
{
data += 7;
size -= 7;
}
去掉ADTS头部后再次同时推送音视频,果然所有播放器都可以正常播放,声音也正常。
至此可以确定RTMP推送AAC数据时是需要去掉ADTS头部的。
LiveRTMP之rtmp流flash播放器无法正常播放问题解决(二)的更多相关文章
- (1)H5实现音乐播放器【正在播放-歌词篇】
近期闲来无事,就想着复习一下前端的东西,然后正好跟朋友搞了一个公共开放的音乐api接口,就想着写一个音乐播放器玩玩! 话不多说,直接上图,然后上代码 [播放器显示正在播放] 实现功能: 1:歌词随着歌 ...
- EasyPlayerPro windows播放器本地音频播放音量控制实现
背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打 ...
- H5播放器内置播放视频(兼容绝大多数安卓和ios)
关于H5播放器内置播放视频,这个问题一直困扰我很长一段时间,qq以前提供白名单已经关闭,后来提供了同层属性的控制,或多或少也有点差强人意. 后来一次偶然发现一个非常简单的方法可以实现. 只需要给vid ...
- html5标签video(播放器)学习笔记(二)-基本操作
html5标签video(播放器)学习笔记(二)-基本操作 subying 发布时间: 2014/12/01 23:59 阅读: 13008 收藏: 21 点赞: 3 评论: 0 摘要 本文介绍了ht ...
- EasyRTMP手机直播推送rtmp流flash无法正常播放问题
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52960750 问题简介 EasyRTMP是EasyD ...
- EasyPlayer RTSP播放器对RTSP播放地址url的通用兼容修改意见
问题反馈 最近在线上遇到一位老朋友咨询关于EasyPlayer播放器的事情,大概现象就是分别用EasyPlayer和vlc播放大华摄像机的RTSP流,流地址是:rtsp://admin:admin12 ...
- jqm视频播放器,html5视频播放器,html5音乐播放器,html5媒体播放器,video开展demo,html5视频播放演示示例,html5移动视频播放器
最近看到很多有用的论坛html5视频播放的发展,音乐播放功能,大多数都在寻找答案.所以,我在这里做一个demo.对于大家互相学习.html5开发越来越流行,至于这也是一个不可缺少的一部分的视频. 如何 ...
- 【问题解决方案】之 关于某江加密视频swf专用播放器仍无法播放的问题
前言: 从pt上下载了一些语言学习的视频之后一直打不开,百度谷歌了若干种方法仍然无解.无奈放弃. 某日从百度知道里又看到一个方法,试了一下,居然灵了.呜呼哀哉.赶紧记下来. 原方法链接:https:/ ...
- PotPlayer播放器——最强大的播放器 - imsoft.cnblogs
PotPlayer下载:链接 http://pan.baidu.com/s/17vgMM 密码: 8buc PotPlayer关联图标修改方法:打开安装目录替换目录下的PotIcons.dll文件即可 ...
- android音乐播放器开发 SweetMusicPlayer 播放本地音乐
上一篇写了载入歌曲列表,http://blog.csdn.net/huweigoodboy/article/details/39856411,如今来总结下播放本地音乐. 一,MediaPlayer 首 ...
随机推荐
- uni-app项目process is not defined
前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,公司项目就是主推uni-app. 坑位 最近在开发一 ...
- Function AI 工作流发布:以 AI 重塑企业流程自动化
AI 工作流如何重塑企业自动化流程 在 AI 技术飞速发展的今天,企业的流程自动化方式也正在发生深刻变革.过去,流程自动化往往依赖于人工配置和固定规则,难以适应复杂.多变的业务场景.而如今, 随着 L ...
- Local Deep Research - AI驱动的深度研究助手
项目概述 Local Deep Research (LDR) 是一个AI研究助手,专注于执行深度.迭代的研究任务.核心功能包括: 复杂问题分解:将复杂查询拆分为聚焦的子查询 多源并行搜索:同时搜索网络 ...
- Luogu P8800 [蓝桥杯 2022 国 B] 卡牌 题解
P8800 [蓝桥杯 2022 国 B] 卡牌 我们看到这样一句话: 请问小明最多能凑出多少套牌? 很明显用贪心可以做了. 首先要理解一个东西,卡牌套数等于最少的卡牌牌数.因为一套卡牌需要所有卡牌各一 ...
- curl error: Problem with the SSL CA cert (path access rights?) 的解决方法
github上的解决方案 https://github.com/archlinuxfr/yaourt/issues/287 curl_easy_perform()返回值说明 在移植别人的sdk的时候发 ...
- java 套接字
简介 RT code package com.kuang; import java.io.ByteArrayOutputStream; import java.io.IOException; impo ...
- Phenomenon•Observation•Uncertainty/Certainty•Statistical law•Random phenomenon•Theory of Probability
Mathematics: the logic of certainty. Statistics: the logic of uncertainty. Certainty/Uncertainty: Ph ...
- 高阶篇:1.5)如何选择更好的概念-Pugh矩阵法
本章目的:系统而有条理地选择更好的概念--pugh矩阵法,有对比就有更好的. 1.前言 在前面的分章中,我们通过各种概念获取的方法获得了很多的初步的概念设计方案. 但这些方案不可能全部实施的. 如何在 ...
- win11系统电脑休眠后无法唤醒的问题
有很多深度官网的小伙伴,已经升级win11系统了,而且也获得了众多小伙伴的青睐.当然电脑用着就会出现一些问题.比如:可能会遇到电脑在自动休眠后无法唤醒的问题,这不仅影响了使用体验,还可能带来一些不必要 ...
- 【C++ Primer Plus】C++11 深入理解右值、右值引用和完美转发
1. 右值引用和移动语义 1.1 左值和右值 左值 local value:存储在内存中.有明确存储地址(可寻址)的数据(x.y.z) 右值 read value:不一定可以寻址,例如存储于寄存器中的 ...