ffmpeg 音频视频 使用过程中碰到的问题记录
来源:互联网 发布:装修全包 半包 知乎 编辑:程序博客网 时间:2024/05/21 06:43
1 音频packet解码为frame之后,音频数据的大小:
pframe->data[0],为数据地址,数据的大小应该使用函数av_samples_get_buffer_size( NULL, av_frame_get_channels( pFrame ), pFrame->nb_samples, ( AVSampleFormat )pFrame->format, 1 ); 来获取,如果使用pFrame->linesize[0]作为大小,音频数据会有杂音(可能是这个值小了)。
2 opensles 播放器请求数据的时候如果给了null,给了几次null之后它就不会来请求数据了。
3 一个packet,如果是视频里面最多解码出来一帧,如果是音频,可能解码出来好几帧。参考ffmpeg自带例子demuxing_decoding.c
4 librtmp,一个RTMPPacket结构体对象,描述的是一个flv文件中的一个完整的tag,包括tag头和tag body。
5 ffmpeg编译碰到的问题,环境是win7+ubuntu虚拟机,在Windows上git clone ffmpeg源码,然后拷贝到虚拟机的共享文件夹,再到ubuntu上编译ffmpeg
这样子编译出错,./configure 找不到文件或目录,用在ubuntu上git clone ffmpeg的源码,这样才行。
6 ffmpeg编译的问题,自己首先编译了出了libcdio.so,libcdio的所有函数都编译到这个so里面去了,但是configure里面检查开启了libcdio之后需要用到三个so库,
“if enable libcdio.....,”没有找到另外两个库,所以后面die,编译失败,如果注释这个die这一句,编译的时候就会提示找不到libcdio的头文件。
所以不能这么改,注释掉没有用到的另外两个so就好了。记录一下这个问题。
7 yuv420转rgb
int r = yy+1.4075*(vv-128);
int g = yy - 0.3455*(uu-128) - 0.7169*(vv-128);
int b = yy + 1.779*(uu-128);
r = (r<0)?0:(r>255?255:r);
g = (g<0)?0:(g>255?255:g);
b = (b<0)?0:(b>255?255:b);
8 使用rtmp的metadata消息来携带自定义数据的话,发送过去的metadata信息里面要有个onMetaData字符串,拉流端的RTMP_Read函数才能拿到这个metadata。
- ffmpeg 音频视频 使用过程中碰到的问题记录
- 使用myfaces过程中碰到的问题
- Loadrunner使用过程中碰到的问题
- Selenium使用过程中碰到的问题
- Odps使用过程中碰到的问题。
- AndroidStudio使用过程中碰到的问题
- 记录给nginx增加模块过程中碰到的问题
- ffmpeg解码中碰到的问题
- 记录linux使用中碰到的命令,问题
- JDeveloper使用过程中碰到怪问题的解决
- CSP编程基础--CryptAPI使用过程中碰到的问题
- 使用CMAKE过程中碰到的栈溢出问题总结
- selenium RC 使用过程中碰到的小问题
- CSP编程基础--CryptAPI使用过程中碰到的问题
- CSP编程基础--CryptAPI使用过程中碰到的问题
- ServiceStack.Redis 使用过程中碰到的两个问题
- 使用CMAKE过程中碰到的栈溢出问题总结
- Aurora一些使用过程中碰到的问题
- Java用webSocket实现tomcat的日志实时输出到web页面
- 【codevs 1063】合并果子
- BFC介绍
- UpdateData函数的学习
- javascript高级程序设计读书笔记--传递参数
- ffmpeg 音频视频 使用过程中碰到的问题记录
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- android 秒启动解决启动白屏,黑屏现象
- [leetcode]229. Majority Element II -- JavaScript 代码
- logstash中字符串的split,对每个子串进行json解析
- IP转换应用
- ubuntu上安装并使用nvm管理node版本
- git常用命令
- 进制转换【思维】(巧法)