![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFMpeg
文章平均质量分 88
dong_cc
这个作者很懒,什么都没留下…
展开
-
FFmpeg发送流媒体的命令(UDP,RTP,RTMP)
这两天研究了FFmpeg发送流媒体的命令,在此简单记录一下以作备忘。1.UDP1.1. 发送H.264裸流至组播地址注:组播地址指的范围是224.0.0.0—239.255.255.255下面命令实现了发送H.264裸流“chunwan.h264”至地址udp://233.233.233.223:6666[plain]view plaincopy...原创 2017-03-21 15:34:48 · 684 阅读 · 1 评论 -
图文详解YUV420数据格式
YUV格式有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。 YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chro转载 2016-02-01 08:47:24 · 287 阅读 · 0 评论 -
关于ffmpeg的例子muxing.c
在ffmpeg的官方例子中有一个muxing.c,这个例子是演示如何用ffmpeg进行打包(muxing),但是这个例子有些问题,说好听点是不完善,说不好听就是有错误。ffmpeg.c是非常完善的,对比ffmpeg.c我发现主要有以下两个错误: 1、在使用avcodec_encode_audio2/avcodec_encode_video2编码前,没有给定时间戳。 2、在main函数的fo转载 2016-01-28 18:23:54 · 371 阅读 · 0 评论 -
最新(2.44)FFmpeg音频播放 ----- 关键点swr_convert
ffmpeg 版本:git clone 于 2014-12-02 ,版本接近2.44,在2.44和2.51之间SDL版本:SDL 1.2(Centos 6.5软件库的相应版本) 有些旧的ffmpeg播放音频示例中,会存在一些音频可以播放一些不能播放,其中一个我们需要考虑的原因和该注意的地方就是 av_decode_audiole类似函数所获的的AVFrame转载 2016-01-28 18:22:18 · 891 阅读 · 0 评论 -
使用ffmpeg实现转码样例(代码实现)
使用ffmpeg实现转码样例(代码实现)使用ffmpeg转码主要工作如下:Demux -> Decoding -> Encoding -> Muxing其中接口调用如下:点击(此处)折叠或打开av_register_all();avformat_open_input转载 2016-01-28 18:21:15 · 593 阅读 · 0 评论 -
FFmpeg编程学习笔记二:音频重采样
ffmpeg实现音频重采样的核心函数swr_convert功能非常强大,可是ffmpeg文档对它的注释太过简单,在应用中往往会出这样那样的问题,其实在读取数据->重采样->编码数据的循环中在第一次执行swr_convert后还应用swr_convert再作个缓存检测看看是否还有数据,如果有就要把它写到FIFO中去,留在下次再使用,这点在转码和由低向高转换采样率时特别重要。 下面一段转载 2016-01-28 18:20:01 · 688 阅读 · 0 评论 -
ffmpeg音频转码,采用swr_convert重取样
目录(?)[+]1、概述:和上一篇音频转码流程一样,只是把filter重取样改为了swr_convert重取样,理解本例子对AVFrame中data如何存储音频数据有更好的理解。2、代码:[cpp] view plain copy/* *最简单的音频转码器(只处理音频) *缪国凯 Mickel *8214860原创 2016-01-28 18:17:15 · 1096 阅读 · 0 评论 -
FFmpeg音频编解码处理
新版的ffmpeg对音频编码处理已经有了很大的变化,记录在此,做个备忘。早期ffmpeg编码音频,输入数据一般都是S16格式,解码输出一般也是S16,也就是说PCM数据是存储在连续的buffer中,对一个双声道(左右)音频来说,存储格式可能就为LRLRLR.........(左声道在前还是右声道在前没有认真研究过)。所以以往编码部分的代码基本形如: int sample_by原创 2016-01-28 18:06:11 · 740 阅读 · 0 评论 -
ffmpeg解码音频数据时,开展重采样(即改变文件原有的采样率)
ffmpeg解码音频数据时,进行重采样(即改变文件原有的采样率)我们使用ffmpeg解码音频的时候,往往需要改变原音频的采样率,即需要重采样。比如一音乐文件的采样率22050,而播放端往往是固定的采样率,比如44100。在这种情况下,如果把解码出来的数据直接播放,会产生快进的效果。这个时候就需要对解码出来的数据作一次重采样,将数据转化为44100采样率下的数据,才能正确播放。ffmpe原创 2016-01-26 11:47:02 · 1021 阅读 · 0 评论 -
ffmpeg解码音频数据时,进行重采样(即改变文件原有的采样率)
我们使用ffmpeg解码音频的时候,往往需要改变原音频的采样率,即需要重采样。比如一音乐文件的采样率22050,而播放端往往是固定的采样率,比如44100。在这种情况下,如果把解码出来的数据直接播放,会产生快进的效果。这个时候就需要对解码出来的数据作一次重采样,将数据转化为44100采样率下的数据,才能正确播放。ffmpeg提供了一组用来重采样的API,主要如下:/** *原创 2016-01-26 11:45:36 · 606 阅读 · 0 评论 -
ffmpeg 新老接口问题及对照集锦
fmpeg源码包里面有个apichangs文档,里面有各种接口改变的记录,如果你发现接口不能用了,可以去搜索那个文档,可以找到对应的新接口,然后到新接口对应的头文件中找到说明文字网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。为了解决大家的原创 2016-01-26 11:44:22 · 272 阅读 · 0 评论 -
FFmpeg - C++中使用ffmpeg库
ffmpeg库的接口都是c函数,其头文件也没有extern "C"的声明,所以在cpp文件里调用ffmpeg函数要注意了。一般来说,一个用C写成的库如果想被C/C++同时可以使用,那在头文件应该加上#ifdef __cplusplusextern "C" {#endif#ifdef __cplusplus} // endof extern "C"#endif原创 2016-01-25 11:09:37 · 1739 阅读 · 0 评论 -
FFMPEG解码流程
FFMPEG解码流程: 1. 注册所有容器格式和CODEC: av_register_all() 2. 打开文件: av_open_input_file() 3. 从文件中提取流信息: av_find_stream_info() 4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO 5. 查找对应的解码器: avcodec_find_decoder(原创 2016-01-25 09:20:33 · 379 阅读 · 0 评论 -
ffmpeg解码流程
FFMPEG解码流程:1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO5. 查找对应的解原创 2016-01-25 09:18:14 · 329 阅读 · 0 评论