剑痴乎

  • 首页
  • 文章分类
    • 音视频
    • WebRTC
    • 编程之美
    • Linux
    • Windows
    • 生活点滴
    • 校园生活
  • 参考
    • API参考
    • 实用工具
    • 测试音视频
    • 文档
  • 留言板
  • 关于
音视频
音视频

flv文件adts头计算

常见flv文件封装的音频用的都是aac编码,aac文件有两种格式,一个是AIDS,一个是ADTS(Audio Data Transport Stream 音频数据传输流)。其中ADTS格式用于流式传输,因为每一帧都包含头信息,可以从任一帧开始解码,故用于流式传输。本文主要讲下flv文件中的adts。 adts的头部结构 adts头部大小7个字节或者9个字节(决定于是否包含CRC)。结构定义如下图所示: MPEG-4 Audio Object Type 0: Null 1: AAC Main 2: AAC LC (L…

2016年4月29日 0条评论 2848点热度 3人点赞 Jeff 阅读全文
音视频

libVLC SDK下载地址

以前在Windows下使用libVLC 时都是直接到官网下VLC安装包,安装后目录下有个SDK文件夹。最近要用到新版的SDK,安装完最新VLC后没看到目录下有SDK文件夹。后来找了下,在另一个地方可以下载到。 下载地址:http://download.videolan.org/pub/videolan/vlc/ 在这个地址可以下载到各个版本的VLC,点击进入某个版本,下载windows下7z格式压缩包,解压即可得到相应的SDK。

2016年4月15日 0条评论 2910点热度 16人点赞 Jeff 阅读全文
音视频

avcodec_decode_video2解码得不到图像

如下所示代码: [crayon-680deac007b33415780931/] 在使用avcodec_decode_video2函数解码时经常会遇到frameFinished == 0,也就是无法得到一帧解码后的图像。有些人可能会怀疑是哪里出错了,其实这是正常的现象,ffmpeg内部解码时做了处理。处理如下: 1)该帧为B帧,由于B帧是前后参考帧,需要结合前面的I帧或者P帧,以及后面的P帧来生成完整图像,所以该帧如果是B帧,就无法立即解码,所以返回的frameFinished为0,需要解码完后一帧后才可以解码该帧…

2016年4月8日 0条评论 2678点热度 10人点赞 Jeff 阅读全文
音视频

MP4解析得到的视频播放问题

前段时间完成了AVI的文件解析程序,也封装了接口。这段时间一直在写MP4文件的解析程序(都没用到第三方库),已经写得差不多了,可以还原音视频帧列表,得到封装的音视数据。不过在测试播放解析得到的视频却发现了一个问题,部分MP4文件解析得到的视频可以用ffplay播放,部分不行。后来仔细对比了下视频文件内容,发现是视频编码类型导致的。 解析后的视频数据不做处理,写到文件可以直接播放的mp4文件视频编码格式为MPEG4,每一帧头部是0x00 0x00 0x01分隔符。 而编码格式为H264的sample数据区别于一般的N…

2016年3月15日 4条评论 4392点热度 2人点赞 Jeff 阅读全文
音视频

AVI文件详细解析

最近在做视频文件的解析,需要将视频文件中封装的视频与音频解析出来,然后用自己的解码器解码。这个过程专业点叫做叫做Demultiplex,视频播放器中负责这部分的叫做Demuxer。我们平时看到的各种格式视频,比如:avi,mp4,mkv等相当于一种容器,里面包含了音视频,字幕的信息以及数据,Demuxer的工作就是解析视频文件,取出里面的音视频或者字幕送到指定的解码器解码。 我刚开始接触的avi文件的解析。首先介绍下AVI文件。AVI英文全称为Audio Video Interleaved,即音视频交错格式,AVI…

2016年2月23日 7条评论 6108点热度 3人点赞 Jeff 阅读全文
Windows

使用libVLC实现的播放器:支持双击全屏

背景 最近在学习duilib这个库,看了网上Alberl的教程,他那个仿迅雷播放器做的不错,我就直接拿来学习duilib了。不过这个播放器有个缺点,就是无法双击全屏,也就是鼠标放到libVLC播放窗口时无法响应消息,消息都被libVLC内部处理了。这对我们而言不是很方便。因为有时我们需要双击全屏,或者弹出鼠标右键菜单做一些操作。后来上网查了下,好多人遇到这个问题。下面是一些查到的解决方法。 解决libVLC无法响应鼠标消息 如下是查到的一些方法: 1)使用全局钩子; 2)修改libVLC鼠标消息处理代码,重新编译;…

2015年11月23日 15条评论 9403点热度 12人点赞 Jeff 阅读全文
音视频

libvlc_new初始化失败

最近在做一个视频播放器,用到了libvlc,使用起来也是挺方便的,不过刚开始的时候遇到了一个问题: libvlc_new(0, NULL)这个函数总是返回NULL,后来发现是没把vlc的Plugins文件夹也放到程序执行目录,我只放了libvlc.dll与libvlccore.dll那两个dll文件,vlc初始化过程也需要初始化相应插件。放了之后,一切正常。 -------------------------------------------------------------------------------…

2015年11月13日 7条评论 5619点热度 5人点赞 Jeff 阅读全文
音视频

PortAudio枚举音频设备

前面我们说到了如何用Visual Studio编译portAudio,下面我们开始讲下如何使用PortAudio,先从最简单的开始,这篇文章我们主要讲如何枚举音频相关设备。代码如下: [crayon-680deac00bffd456875300/] 如下是deviceinfo对应结构体声明: [crayon-680deac00c002121506648/] 编译运行得到如下结果: 在最后几行打印的结果中出现的一些设备名汉字乱码是因为有些设备名以UTF-8编码,我没做转换,转化后即可正常显示。

2015年6月23日 0条评论 2014点热度 1人点赞 Jeff 阅读全文
1234
版权声明

为支持原创,创作更好的文章,未经许可,禁止任何形式的转载与抄袭,如需转载请邮件私信!本人保留所有法定权利。违者必究!

最近评论
ztt 发布于 3 周前(04月05日) 你好,想看里面的视频和图片为什么没有显示呢?需要下flash吗还是什么。
huowa222 发布于 1 个月前(03月26日) 同问
邱国禄 发布于 2 个月前(02月17日) Receive Delta以0.25ms为单位,reference time以64ms为单位,kDe...
啊非 发布于 4 个月前(12月30日) 大神,请教一个问题: constexpr int kBaseScaleFactor = Tran...
啊非 发布于 4 个月前(12月30日) reference time:3字节,表示参考时间,以64ms为单位,但是 代码里面是 Trans...

COPYRIGHT © 2024 jianchihu.net. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang