ffmpeg
那年晴天
汽车行业
展开
-
ffmpeg 交叉编译(编译工具是 arm-linux-gnueabihf-gcc)
之前编译linux的版本,通过了。交叉编译花了自己很长时间,而且,现在的编译也是有错误的。不过,我需要的是ffmpeg的静态库,幸好静态库编译成功,不然的话,又要花好长时间来来解决问题了。 第一步,先修改配置文件,configure文件中的编译工具。 cc_default="arm-linux-gnueabihf-gcc" cxx_default="arm-linux原创 2017-03-15 18:40:52 · 5839 阅读 · 1 评论 -
specified sample format s16 is invalid or not supported(linux)
在window下使用ffmpeg进行音频AAC编码,出现错误:specified sample format s16 is invalid or not supported。这其实是由于版本更新所导致的问题。在之前的ffmpeg版本中,是使用 AV_SAMPLE_FMT_S16格式 的,更新库文件之后,就不行了,只支持 AV_SAMPLE_FMT_FLTP格式。其实,并不是不支持AV_SAMP原创 2017-10-17 20:17:55 · 5147 阅读 · 2 评论 -
视频文件解复用获取的aac文件添加adts头
根据雷神的代码,可以获取mp3等音频文件。网址是:http://blog.csdn.net/leixiaohua1020/article/details/39767055同时,还可以把数据回调出去,进行其他的处理,是没有任何问题的。可是,现在的视频文件大都是H264+AAC。可是,根据雷神的代码是获取的数据,在播放器上播放失败。这是由于获取的aac数据是缺少adts文件头,添加上去就可以了。说原创 2017-10-17 20:44:08 · 2463 阅读 · 1 评论 -
avio_open2打开文件阻塞
自己在使用avio_open2()函数打开输出文件的时候,突然间阻塞住了,自己搞不明了,试了半天,才发现原来是输出文件有问题,删了之后,就没问题了。原创 2017-10-18 19:46:06 · 2035 阅读 · 1 评论 -
ffmpeg中av_find_best_stream()函数的使用
av_find_best_stream()函数就是要获取音视频对应的stream_index。其实,还有另外一种方法来获得音视频对应的stream_index。for (i = 0; i nb_streams; i++) { //Create output AVStream according to input AVStream AVFormatContext *ofmt_ctx;原创 2017-10-11 09:56:05 · 10998 阅读 · 0 评论 -
FFMPEG音视频解码
转载自:http://www.cnblogs.com/CoderTian/p/6791638.html1.播放多媒体文件步骤通常情况下,我们下载的视频文件如MP4,MKV、FLV等都属于封装格式,就是把音视频数据按照相应的规范,打包成一个文本文件。我们可以使用MediaInfo这个工具查看媒体文件的相关信息。所以当我们播放一个媒体文件时,通常需要经过以下几个转载 2017-10-12 20:49:11 · 548 阅读 · 0 评论 -
FFMPEG 关于对时间戳转换的理解
首先介绍转换函数:av_rescale_q_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd)此函数主要用于对于不同时间戳的转换。具体来说是将以 "时钟基c" 表示的 数值a 转换成以 "时钟基b" 来表示。FFMPEG的很多结构中有AVRationaltime_base;这样的一个成员,它是AVRational结构的转载 2017-10-13 11:36:46 · 1167 阅读 · 0 评论 -
FFplay使用指南
1. ffplay 是什么?简单的说,ffplay 是一个使用了 ffmpeg 和 sdl 库的、一个简单的可移植的媒体播放器。2. ffplay 使用方式命令行: ffplay [选项] ['输入文件']3. ffplay 可使用的选项3.1 通用选项view sourceprint?01.'-L' 显示 lice转载 2017-10-24 19:03:28 · 5467 阅读 · 0 评论 -
对ffmpeg的时间戳的理解笔记
之前也有了解过ffmpeg中时间戳的相关知识点,但也仅限了解,没有更深入的理解,更没有作相关的笔记整理。近期由于工作中需要用到ffmpeg的时间戳,所以再一次去学习ffmpeg中的时间戳的知识点,并作了相关笔记,整理如下:/**Date:2017-07-28*Author:TopsLuo*Function:掌握ffmpeg中时间戳的知识点。并根据实际的时间来生成ffmpeg内部不同时间基转载 2017-10-25 15:29:04 · 1594 阅读 · 0 评论 -
用AVCodecParameters代替AVCodecContext
在高版本的ffmpeg库中使用AVStream::codec成员时,编译和运行时都出现一堆警告:main.cpp:151: warning: ‘AVStream::codec’ is deprecated (declared at ……\Other_libs\ffmpeg3.2\include/libavformat/avformat.h:893)和Using转载 2017-10-17 14:30:51 · 1512 阅读 · 0 评论 -
FFmpeg音频转码总结
最近自己在做音频转码的事情。刚开始是想通过ffmpeg的示例程序来学习,可是比较复杂,短时间内看的头昏脑胀。索性在网上搜索关于转码的例子。还是在雷神的博客里找到了类似的示例程序,地址是:http://blog.csdn.net/leixiaohua1020/article/details/26838535这个示例程序是调用ffmpeg中aviflter的模块来进行做的。进行转码只是avfilt原创 2017-09-18 21:59:10 · 5411 阅读 · 2 评论 -
YUV数据流编码成H264
自己使用ffmpeg进行编码,在网上搜索到了雷霄骅大神,他的博客内几乎全是关于ffmpeg的,内容很全面,不过ffmpeg更新很快,他博客上的有些代码,不太适合了。但是,他提供了更新后的代码,自己使用的是如下的代码例子,地址在最后面。文件中有两个例子,我都实验过了全部是可以使用的,不过是在window下。自己需要在linux下进行编码,使用ffmpeg库,因为ffmpeg没有自己x264编原创 2017-04-26 20:21:43 · 4856 阅读 · 2 评论 -
ffmpeg ./configure参数说明
root@web ffmpeg]# ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Standard options: 基本选项参数--help 显示此帮助信息|print this message--l转载 2017-03-29 19:25:33 · 410 阅读 · 0 评论 -
FFmpeg 模块组成
FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库 libavcodec 等。libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;音视频的格式解析协议,为 libavcodec 分析码流提供独立的音频或视频码流源。libavcodec:用于各种类型声音/图转载 2017-03-13 14:24:15 · 606 阅读 · 0 评论 -
编译ffmpeg文件遇到的问题以及解决方法
我在编译文件的时候,调用到了ffmpeg的接口函数,遇到一些问题,记录下来。 1.avcodec_alloc_frame() 替换为 av_frame_alloc()。 编译的时候,显示.avcodec_alloc_frame()出错,网上百度一下,查到了,原来是版本的问题。需要更换函数。 2.AVPixelFormat。这是一个enum变量,刚开始我还以为是一个类。原创 2017-03-13 16:26:49 · 1380 阅读 · 0 评论 -
调用ffmpeg库出现的问题以及解决方法
1.libavcodec.a(vc1dsp_mmx.o): relocation R_X86_64_PC32 against 符号 `ff_pw_9' can not be used when making a shared object; recompile with -fPIC. 这个是编译静态库的时候,出现的问题。在网上查资料,说是在配置ffmpeg的时候,需要配置一下。 命原创 2017-03-14 12:40:47 · 6745 阅读 · 1 评论 -
编动态链接库时,提示 对‘dlopen’未定义的引用.该如何解决
编动态链接库时,提示 对‘dlopen’未定义的引用.我按网上的方法写了个调用LINUX下的动态链接库的代码。代码如下。 #include #include using namespace std; int main() { void *dp; dp = dlopen( "test.so ",RTLD_NOW);转载 2017-03-14 19:41:30 · 14486 阅读 · 1 评论 -
播放yuv文件遇到的问题及解决方法
其实这也算是一个简单的问题,可是自己老是忘记。播放yuv文件,需要注意两个地方的参数。帧率不用管,一般是25或者30帧左右。其中注意yuv类型和分辨率。自己犯错的地方是就是这两个参数。一般来说,从摄像头获取的类型是Iyuv(I420),这个地方默认的是RGB32;分辨率的话,如果获取的缓存是正确的,一个一个地测试,就可以正确显示的。如果有画面,但是显示不正确,那就是yuv的类型选择原创 2017-03-15 17:58:16 · 2030 阅读 · 0 评论 -
[h264_nvenc @ 0x1bb8160] Cannot load libcuda.so.1
自己在linux下,要把yuv数据转换成h264数据,我选择了ffmpeg。当然,现在linux下安装ffmpeg。编译测试文件的时候,出现了错误:[h264_nvenc @ 0x1bb8160] Cannot load libcuda.so.1。在配置ffmpeg的时候需要注意,添加上--enable-libx264,这样的错误就可避免。因为ffmpeg没有自带h264的编码库,原创 2017-04-18 10:58:07 · 5457 阅读 · 0 评论 -
ffmpeg 用 h264库进行编码的编译配置
编译准备:ffmpeg的编译 要用到yasm 汇编器,安装apt-get install yasm一、编译X2641、下载x264的工程代码,git clone git://git.videolan.org/x264.git2、进入x264目录,然后./configure --help看看它的帮助信息,我们这里需要的是x264以.so or .a的形式来支援ffmpeg转载 2017-04-18 11:02:14 · 2354 阅读 · 0 评论 -
使用ffmpeg步骤
av_register_all();//初始化ffmpeg库,如果系统里面的ffmpeg没配置好这里会出错 if(isNetwork) { //需要播放网络视频 avformat_network_init(); } avformat_open_input();//打开视频文件 avformat_find_stream_info();//查找文件的流信息转载 2017-04-14 17:31:20 · 510 阅读 · 0 评论 -
如何将重采样的数据扔给编码器(AVAudioFifo)
上一篇文件中写了一段重采样的测试代码,也提到过如何将resample的音频数据扔给编码器的方法,经过验证发现,该方法的确可行(我测试的音频为AAC格式,32bit,其它格式大家需要稍作改动)。首先需创建AVAudioFifo *fifo并为它申请空间:[cpp] view plain copyint FFmpegDecoder::In转载 2017-11-13 11:18:27 · 3302 阅读 · 0 评论