
ffmpeg开发
爱技术爱生活
这个作者很懒,什么都没留下…
展开
-
AndroidStudio 中使用FFMPEG
转载自:https://www.cnblogs.com/CoderTian/p/6651343.html1.下载 FFmpeg 源码git clone https://git.ffmpeg.org/ffmpeg.git这一步可能会花比较长的时间2.编译 FFmpeg for Android2.1.修改 FFmpeg 的 configure由于FFMPEG默认编译出来的动态库文件名的版本号在.so之...转载 2018-03-02 13:36:17 · 355 阅读 · 0 评论 -
YUY2数据格式如何写入文件
在摄像头采集时输出的数据格式有yuy2这种,在排查问题时需要判断是否是采集问题,需要将这种数据写入文件中,用工具查看在 YUY2 格式中,数据可被视为一个不带正负号的char值组成的数组,其中第一个字节包含第一个 Y 样例,第二个字节包含第一个 U (Cb) 样例,第三个字节包含第二个 Y 样例,第四个字节包含第一个 V (Cr) 样例,如图所示。 videoFrame为采集回调的一帧视频数据,videoFrameLength为一帧视频数据大小 std::string outname...原创 2020-12-31 17:31:23 · 1661 阅读 · 1 评论 -
libvpx的编译过程
libvpx编译过程:wget https://github.com/webmproject/libvpx/archive/v1.6.1.zipunzip libvpx-1.6.1.zipcd libvpx-1.6.1/./configure --prefix=/home/v/workspace/libvpx-1.6.1/build_lib --enable-realtime-only --enable-pic --enable-error-concealment --enable-examp..原创 2020-11-21 21:33:15 · 1249 阅读 · 0 评论 -
Linux下ffmpeg 4.2编译过程
ffmpeg地址:git clone https://git.ffmpeg.org/ffmpeg.git ffmpeglibopus安装:sudo apt-get install opusmp3lame安装:sudo apt-get install mp3lamelibx264-dev:sudo apt-get install libx264-devlibvpx编译过程:wget https://github.com/webmproject/libvpx/arc原创 2020-11-21 21:25:21 · 299 阅读 · 0 评论 -
ffmpeg 4.2编译出现recompile with -fPIC问题
编译ffmpeg的libavcodec库时出现如下报错:/usr/bin/ld: libavcodec/mqc.o: relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIClibavcodec/mqc.o: error adding symbols: Bad valuecollect2: error: ld returned 1 exit st原创 2020-11-21 21:09:45 · 1749 阅读 · 1 评论 -
ffmpeg遇到Non-monotonous DTS in output stream的问题
在执行命令行:./ffmpeg -f concat -safe 0 -i filelist.txt out.mp4遇到如下问题,得到的文件音频某一段没有声音:[mp4 @ 00000249e9f01480] Non-monotonous DTS in output stream 0:1; previous: 36963852, current: 36597661; changing to 36963853. This may result in incorrect timestamps in t原创 2020-08-28 12:11:43 · 17398 阅读 · 0 评论 -
ffmpeg读取文件时长(单位为秒)
GetFileDuration(){ fileUrl=$1 duration_line=`./ffmpeg -i $fileUrl 2>&1 | grep 'Duration'` duration_1=${duration_line%%,*} duration_2=${duration_1%%.*} duration_3=${duration_2#*:} echo $duration_3 durationList=(${duration_3//:/ }) duration_s.原创 2020-05-22 14:02:09 · 954 阅读 · 0 评论 -
ffmpeg拼接两张RGB和YUV图像数据
#define FRAMEWITH 640#define FRAMEHEIGTH 360#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswscale/swscale.h"#include <stdio.h>#include <stdlib.h>...原创 2018-08-26 15:50:33 · 890 阅读 · 0 评论 -
ffmpeg实现MP3转ACC格式功能
$ ./ffmpeg -i qishi.mp3 -acodec aac qishi.aacffmpeg version N-89882-g4dbae00bac Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7.2.0 (GCC) configuration: --enable-gpl --enable-ve...原创 2018-09-26 13:47:17 · 4240 阅读 · 0 评论 -
使用SDL2来播放音频
Opening the audio device: SDL_AudioSpec wanted; extern void fill_audio(void *udata, Uint8 *stream, int len); /* Set the audio format */ wanted.freq = 22050; wanted.format = AUDI...原创 2018-10-08 18:10:42 · 1401 阅读 · 0 评论 -
H.265/HEVC的复杂度体现在哪里?
为了提高H.265/HEVC的网络适应能力,其压缩性能与H.264/AVC相比显著提高,相同条件下的码率可以降低50%,获得性能提升的代价就是编解码复杂度的大大提高。与H.264/AVC相比,H.265/HEVC的复杂度主要体现在以下几点:1)H.265/HEVC的帧内预测模式增多,H.265/HECV中包含角度预测,DC预测、平面预测等35种预测模式,远远超过了H.264/AVC的17种...原创 2018-10-22 14:42:10 · 3041 阅读 · 0 评论 -
Android下编译libx264库
Android NDK:https://download.youkuaiyun.com/download/tong5956/10678081x264:git clone http://git.videolan.org/git/x264.git编译脚本:#!/bin/bashNDK=/home/vbird/workspace/android-ndk-r14bPLATFORM=$NDK/plat...原创 2018-10-23 13:50:41 · 1107 阅读 · 0 评论 -
Android下编译libx265
x265下载地址:https://bitbucket.org/multicoreware/x265/downloads/Android NDK:https://download.youkuaiyun.com/download/tong5956/10678081这里用的x265 v2.6版本,最新2.9版本有一个detect512()函数的BUG:https://gitweb.gentoo.org/re...原创 2018-10-23 14:26:21 · 1712 阅读 · 0 评论 -
ffmpeg从flv文件中分离aac和pcm数据
快速分离文件时,使用命令行方式比较快速。1、从flv文件中分离aac文件:2、从aac文件中分离pcm文件,s32le中的32是每个采样点的占的位数,即4个字节,也可以是s16le即2个字节:...原创 2018-11-05 15:34:28 · 1423 阅读 · 0 评论 -
ffmpeg实现图像倒转
int reverse_img(unsigned char* src_buf, unsigned char* dst_buf, unsigned int n_src_width, unsigned int n_src_height, unsigned int n_dst_width, unsigned int n_dst_height){ if (src_buf == NULL || dst...原创 2018-11-20 11:35:22 · 2501 阅读 · 0 评论 -
使用ffmpeg编码aac和opus
在学习OBS源码过程中,看到音频编码部分,摘抄一部分重点代码供参看研究直接上代码:#include <util/base.h>#include <util/circlebuf.h>#include <util/darray.h>#include <obs-module.h>#include <libavutil/opt.h&...原创 2018-12-07 16:06:21 · 4866 阅读 · 0 评论 -
在navidia显卡上使用ffmpeg硬编H264
在学习OBS源码过程中,看到它支持的英伟达硬编功能,摘抄一部分重点代码供参看研究直接上代码:参数设置:obs_data_set_default_int(settings, "bitrate", 2500);obs_data_set_default_int(settings, "keyint_sec", 0);obs_data_set_default_int(settings, "...原创 2018-12-07 15:56:41 · 2236 阅读 · 0 评论 -
obs-qsv11硬编h264源码解析(二)
/*This file is provided under a dual BSD/GPLv2 license. When using orredistributing this file, you may do so under either license.GPL LICENSE SUMMARYCopyright(c) Oct. 2015 Intel Corporation....原创 2018-08-14 17:54:11 · 2191 阅读 · 0 评论 -
obs-qsv11硬编h264源码解析(一)
这几天在研究intel media sdk的硬编功能,在obs里面正好有这个模块,这里将硬编原理进行研究一下,硬编内容主要在这两个文件种,QSV_Encoder.cpp和QSV_Encoder_Internal.cpp 先研究QSV_Encoder.cpp文件 1、获取编码器版本号mfxIMPL impl = MFX_IMPL_HARDWARE_ANY;mfxV...原创 2018-08-14 17:32:53 · 2618 阅读 · 0 评论 -
Android中使用ffmpeg库进行音视频开发
github地址:https://github.com/tong123/android_ffmpeg_demo 下载后即可运行在手机上,运行如下:原创 2018-08-06 17:33:40 · 944 阅读 · 1 评论 -
使用ffmpeg实现RTMP的直播推流功能
其中文件名in_filename为输入文件名,out_filename为输出rtmp地址。void UpliveThread::uplive_process( ){ AVOutputFormat *p_ofmt = NULL; AVFormatContext *p_ifmt_ctx = NULL, *p_ofmt_ctx = NULL; AVIOContext *p_av原创 2017-02-24 15:49:58 · 9166 阅读 · 0 评论 -
ffmpeg在ubuntu和Qt下的安装及配置例程
参考文献:http://blog.youkuaiyun.com/jk110333/article/details/89782801.下载最新版ffmpeg:http://ffmpeg.org/2.解压后进入ffmpeg文件夹下,执行命令: ./configure --enable-shared;//默认安装到/usr/local/下。也可以通过在后面添加“--prefix=目录”进行更原创 2016-03-20 16:34:47 · 2041 阅读 · 0 评论 -
Qt for IOS环境的搭建以及ffmpeg库的编译与移植
最新版的Qt5.6.0 for IOS,需要xcode7以上的版本,而只有OS X10.11以上才有安装,所以这里选择OS X10.11版本的系统。系统环境: MAC OSX10.11 VMware12以上(必须的)软件环境:Qt5.6.0 for IOS, XCode7(从OSX系统的苹果商店下载)一、平台搭建MAC OSX系统的安装: VMware 12安装Mac O原创 2016-05-28 14:14:41 · 2996 阅读 · 1 评论 -
音频的关键参数详解
1、声道数:声道数是音频传输的重要指标,现在主要有单声道和双声道之分。双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。2、量化位数:量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。由于计算机按字节运算,一般的量化位数为8位和16位。量化位越高,信号的动态范围越大,数字化后的音频信号就越可能接近原始信号,但所原创 2017-12-04 16:39:58 · 15122 阅读 · 1 评论 -
BGR24转换为YUV420函数
void RGBtoYUV(unsigned char* bufferYUV, unsigned char* bufferRGB, unsigned int width, unsigned int height){AVFrame* FrameRGB = av_frame_alloc();AVFrame* FrameYUV = av_frame_alloc();avpictu原创 2018-01-31 17:21:31 · 1412 阅读 · 0 评论 -
音频封装遇到Malformed AAC bitstream detected的问题
音频封装遇到的问题: Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)解决:在音频数据处理之前,加上这句即可:AVBitStreamFilterContext* a原创 2018-02-05 17:46:05 · 5309 阅读 · 1 评论 -
avio_reading简单使用
/** Copyright (c) 2011 Reinhard Tartler** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to原创 2018-01-30 16:25:34 · 409 阅读 · 0 评论 -
x264在Linux Mint下的交叉编译
本人使用的是Linux Mint,由于系统当中的编译链并不是windows可用的编译链,需要手动安装MingW交叉编译工具。1、首先需要运行命令来安装MinGW sudo apt-get install mingw-w64 build-essential2、下载并解压x264源码:git clone http://git.videolan.org/git/x264.git3、在终原创 2018-01-30 16:41:44 · 272 阅读 · 0 评论 -
HLS介绍
HLS介绍HLS(HTTP live streaming)是apple公司提出的一个基于HTTP的流媒体网络传输协议HLS只请求基本的HTTP报文,和实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器协议简介 1、视频的封装格式是TS 2、视频的编码格式是H.264,音频编码格式是MP3、AAC或者AC-3 3、处理TS视频文件...转载 2018-07-23 14:55:29 · 2630 阅读 · 0 评论 -
播放器系列之ffplay源码分析(五)
1、配置filtergraphstatic int configure_filtergraph(AVFilterGraph *graph, const char *filtergraph, AVFilterContext *source_ctx, AVFilterContext *sink_ctx){ int ret,...原创 2018-08-09 16:52:33 · 475 阅读 · 0 评论 -
播放器系列之ffplay源码分析(六)
1、ffplay包含的头文件#include "config.h"#include &lt;inttypes.h&gt;#include &lt;math.h&gt;#include &lt;limits.h&gt;#include &lt;signal.h&gt;#include &lt;stdint.h&am原创 2018-08-09 17:26:14 · 430 阅读 · 0 评论 -
播放器系列之ffplay源码分析(七)
1、解码结构体初始化static void decoder_init(Decoder *d, AVCodecContext *avctx, PacketQueue *queue, SDL_cond *empty_queue_cond) { memset(d, 0, sizeof(Decoder)); d-&gt;avctx = avctx; d-&gt;queue = ...原创 2018-08-09 17:59:56 · 582 阅读 · 0 评论 -
播放器系列之ffplay源码分析(八)
包队列的使用: 1、将包放入队列的详细过程static int packet_queue_put_private(PacketQueue *q, AVPacket *pkt){ MyAVPacketList *pkt1; if (q-&gt;abort_request) return -1; pkt1 = av_malloc(sizeof(My...原创 2018-08-10 09:13:59 · 756 阅读 · 1 评论 -
播放器系列之ffplay源码分析(九)
1、清理参考帧static void frame_queue_unref_item(Frame *vp){ av_frame_unref(vp-&amp;amp;amp;gt;frame); avsubtitle_free(&amp;amp;amp;amp;vp-&amp;amp;amp;gt;sub);}2、帧队列初始化static int frame_queue_init(FrameQueue *f, PacketQ原创 2018-08-10 09:49:41 · 642 阅读 · 2 评论 -
ffmpeg的Android交叉编译及在Qt for Android中的使用
在将ffmpeg库移植到Qt for Android进行开发过程中过程遇到一些问题,这里将移植过程及遇到的问题记录如下,也让后面的人在使用Qt for android过程中遇到同类问题时解决起来更加简单快捷。1.编译ffmpeg脚本网上很多,这里用的脚本,内容如下:make clean export NDK=/home/fish/android/android-ndk-r原创 2016-04-02 14:28:05 · 3596 阅读 · 5 评论