FFmpeg实战课
Loong.xu
青春的诀别是不是意味着年迈的将近;其实,青春,她一直都在继续.
展开
-
SDL实现YUV播放器
用SDL来实现YUV播放器主要是通过一个播放时间管理线程,每隔一段时间(比如1秒播放25帧那就每隔40毫秒)发送一个刷新事件,启动事件监听后,每次监听到刷新事件后就从YUV文件中读取一帧图片在SDT创建的窗口中进行纹理渲染展示。/*YUC播放器*/#include <stdio.h>#include <string.h>#include <SDL.h>#define BLOCK_SIZE 4096000//event message#define R翻译 2021-09-16 20:06:45 · 627 阅读 · 0 评论 -
FFmpeg抽取音频数据
FFmpeg抽取音频数据涉及到以下几个函数:av_init_packet() 初始化一个数据表结构体(音视频流是由一个个数据包组成)av_find_best_stream() 在多媒体参数找到最好的一路流av_read_frame() 读取流中的每一个包av_packet_unref() 用于包数据不用了之后释放内存注意:下面添加ADTS头的方法只适合HE-AAC 和 LC-AAC,对于其他类型的AAC用这个方法会导致抽取的音频无法播放。关于AAC的ADTS头详解可以参考:AAC的ADTS头解析原创 2021-08-31 20:48:59 · 981 阅读 · 0 评论 -
FFmpeg抽取视频h264数据
从mp4文件中抽取h264数据步骤如下:1.打开mp4文件并创建一个空文件用于存储H264数据2.提取一路视频流资源3.循环读取流中所有的包(AVPacket),为每个包添加特征码和sps/pps等数据(只有关键帧前面要添加sps/pps数据,其他的只需要添加特征码),都处理完后将数据写入文件保存。ffmpeg读取mp4中的h264数据,pps及sps并不能从packet中获得,而是保存在AVCodecContext的extradata数据域中,如下所示是一个mp4文件的extradata的前面一原创 2021-08-31 20:36:54 · 3272 阅读 · 1 评论 -
FFmpeg将mp4转成flv
mp4转成flv格式文件步骤如下:1.打开输入文件,创建输入文件和输出文件的上下文环境2.遍历输入文件的每一路流,每个输入流对应创建一个输出流,将输入流中的编解码参数直接拷贝到输出流中。3.文件的写入。先写入新的多媒体文件的头。然后遍历输入文件的每一帧,对每一帧进行时间基的转换,转换好后写入新的多媒体文件。最后再多媒体文件中写入文件尾。/*将mp4转成flv格式*/#include <libavutil/timestamp.h>#include <libavform原创 2021-08-31 20:07:40 · 1843 阅读 · 0 评论