
ffmpeg
jklinux
一个linux下的渣渣老码农
展开
-
ffmpeg在centos7上的编译
音视频的编码格式标准有很多种: mp3, acc, mpeg4, h264, h265 ….. 每个标准都有一个或多个编解码库, 如h264的库有libx264, mpeg4的库有xvid, h265的库有libx265 不同的库, 里面提供的函数及编解码操作流程都会不一样. ffmpeg其实就把各种库的编解码接口统一标准化, 也就是学会一种接口后就可以通杀各种编解码库.当然ffmpe原创 2017-05-17 11:44:32 · 7286 阅读 · 3 评论 -
01 ffmpeg对摄像头的调用编程
库的分支: libavcodec // audio video codec 音视频的编解码库 libavformat // 与容器相关的操作. 文件的格式 libswscale // 转换数据格式 libavdevice // 操作如摄像头,声卡设备文件的库 libavfilter // 可加水印头文件:#define __STDC_CONSTANT_M原创 2017-05-17 17:36:16 · 3071 阅读 · 0 评论 -
02 ffmpeg获取桌面图像的编程
头文件:#define __STDC_CONSTANT_MACROS extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavdevice/avdevice.h> }AVInputFormat类型表示一种输入文件/输入设备的数据格式 AVForm原创 2017-05-18 10:37:34 · 1689 阅读 · 0 评论 -
03 ffmpeg调用声卡录制wav文件
头文件:#define __STDC_CONSTANT_MACROS extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libavdevice/avdevice.h> }AVInputFormat类型表示一种输入文件/输入设备的数据格式 AVForm原创 2017-05-18 15:40:58 · 2651 阅读 · 4 评论 -
04 ffmpeg摄像头数据H264编码
yuyv(yuv422): 一行里的两个像素结合, 一个像素有(y, u), 另一个像素有(y, v). 还原rgb时两像素的数据需结合来使用. yuv420: 每两行的上下两个像素结合, 一行的两个像素只存(y, u, y), 下一行的两个像素只存(y, v, y). ///////////////////////////////////// yuv444: y00u00v00 y01u原创 2017-05-18 17:38:55 · 4118 阅读 · 0 评论 -
05 ffmpeg桌面图像h264编码并封装avi
当ffmpeg获取桌面图像数据时, 数据格式是ARGB8888, 需要转换成yuv420p.ARGB8888 --> RGB888 --> yuv444 --> yuv420pY Y = 0.299 x R + 0.587 x G + 0.114 x B + 0 U Cb = -0.169 x R - 0.331 x G + 0.499 x B + 128 V Cr = 0.原创 2017-05-19 10:46:56 · 2005 阅读 · 0 评论 -
ffmpeg移植
1. 交叉编译yasm 进入yasm源码目录 make distclean //先把之前的编译,配置文件清除 export CC=arm-linux-gnueabihf-gcc //可通过"./configure --help"查看到用环境变量CC指定交叉编译器 ./configure --prefix=/usr/local/ffmpeg_arm/xlibs -原创 2017-05-30 17:26:11 · 1380 阅读 · 0 评论 -
ffmpeg 常用命令功能汇总
主要命令: ffmpeg [input_file_options] -i input_file [output_file_options] output_file 注意: "-i input_file" 表示输入的文件或设备. 输入文件或设备相关的配置必须在"-i input_file"前设定, 在之后写的是用于输出文件的配置. ffmpeg -version原创 2017-10-18 16:52:01 · 4356 阅读 · 1 评论 -
ffmpeg rgb与yuv的转换
ffmpeg里的libswscale库用于图像数据格式的转换. AVFrame 类型对象用于描述非压缩的音视频数据信息, 此对象本身不提供存储音视频数据的缓冲区,只用于记录数据格式,图像分辨率,数据缓冲区地址等信息. typedef struct AVFrame { #define AV_NUM_DATA_POINTERS 8 uint8_t *data[AV_NUM_DATA_P...原创 2019-07-02 10:54:02 · 9666 阅读 · 1 评论