ffmpeg
文章平均质量分 58
微岩
这个作者很懒,什么都没留下…
展开
-
FFprobe查看&统计视频信息
1. 查看音视频信息1.1 查看基本信息ffprobe 1280x720_h264_8mbps_30fps.mp4Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1280x720_h264_8mbps_30fps.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder原创 2021-10-09 16:28:39 · 7191 阅读 · 0 评论 -
FFmpeg 命令常见操作
1. 转码ffmpeg -i source.mp4 -ss 20 -t 10 -c copy my.mp4ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -c:a copy -c:v copy tt.mp4-i : source-ss:start time-t :duration-c :video,audio codec可以设置输出视频的编码格式-vcodec xxx-acodec xxx-loglevel 562. 视频–> 图片原创 2021-10-09 15:54:27 · 564 阅读 · 0 评论 -
FFmpeg 时间单位与转换
1. 前言FFmpeg存在很多个时间单位,比如pts, dts, ffmpeg内部基准时间,常规时间 本文谈谈他们之间的转换2. ffmpeg内部基准时间与常规时间2.1 基准时间ffmpeg 内部的时间基为AV_TIME_BASE, 其大小如下:#define AV_TIME_BASE 1000000即,ffmpeg内部时间单位为微秒 (μs)AVStream duration : A原创 2016-11-14 15:34:36 · 7569 阅读 · 0 评论 -
Mac XCode FFmpeg 开发环境配置
1. 安装FFmpeg这个可以参考我前一篇文章Mac FFmpeg x265, aac, ffplay编译安装2. 创建XCode工程我创建了一个FFTest的工程, 3. 导入FFmpeg到重点,其实要说的就是这个3.1 Set Library Search Paths找到Build Settings –> Search Paths –>Library Search Paths 在右边输入FF原创 2016-12-08 15:59:19 · 5780 阅读 · 2 评论 -
Mac FFmpeg x265, aac, ffplay编译安装
1. 通过HomeBrew安装最简单,最方便的方法是通过HomeBrew安装, HomeBrew也是通过下载源代码,进行编译安装的,所以不想麻烦通过HomeBrew是明智的选择。1.1安装HomeBrew如果HomeBrew没有安装,可以通过下面命令安装:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebre原创 2016-12-08 15:34:57 · 7808 阅读 · 1 评论 -
Android 编译FFmpeg x264
1. Android FFmpeg开发基本流程(1)X264/FFmpeg + NDK编译 (2)ffmpeg.so + 编解码C代码 (3)Android.mk 编译 (4)JNI (5)JAVA代码调用基本流程如下图所示: 本文涉及FFmpeg,x264编译。2. NDK配置首先需要配置NDK开发环境,略 (1)设置$NDK环境变量# Detect NDKif [[ -z "$N原创 2017-02-22 17:56:58 · 2926 阅读 · 0 评论 -
Android Java调用ffmpeg命令
0. 前言ffmpeg命令很强大,但是在Android工程中无法执行可执行文件ffmpeg,即无法使用ffmpeg。 本文介绍把ffmpeg改造成库文件,然后通过JNI调用它,即可实现在Java中使用ffmpeg命令。PS: 本工程依赖于前文Android 编译FFmpeg x264。1. ffmpeg1.1 main to run(1)ffmpeg.h 进入ffmpeg源代码,修改ffmpe原创 2017-02-23 17:45:19 · 4641 阅读 · 0 评论 -
FFmpeg日志输出到adb logcat
0. 前言在Android中编写的FFmpeg程序,没有经过设置的话是无法在adb logcat中看到ffmpeg的日志,对于NDK程序而言其本身就缺乏适当的调试方法(AndroidStudio可以支持调试,但是很麻烦),如果再不能查看日志,那就算是废了。 本文在此提供一种把ffmpeg日志输出到adb logcat的方法。1. av_log_set_callbackffmpeg中av_log_s原创 2017-02-25 14:48:08 · 3717 阅读 · 0 评论 -
H264 Profile对比分析
0. 前言本文首先会谈谈profile和level是干什么的,然后聊聊用ffmpeg和x264命令行怎么指定对应参数,最后聊聊在代码中怎么使用设置profile和level。1. H264 Profile简单理解就是H264有多个版本,版本越高编码效率和压缩率就越高,对应的版本是Profile。 从低到高分别为:Baseline、Main、High 在相同配置情况下,High profile(H原创 2017-05-26 11:05:38 · 23300 阅读 · 0 评论 -
视频花屏分析
1. 前言视频花屏是多媒体工程师最常见的问题之一,也是最棘手的问题之一,笔者此前也数次遇到这样的问题,今天在此总结分享下经验。本文分析的重点是视频录制过程中引起的花屏问题,粗浅涉及视频播放。但是其中都不会涉及到编码器或者解码器本身所引起的花屏问题。本文所用到的测试资源如下图: 2. 视频花屏问题定位当遇到视频花屏时,首先要定位是最先出现的花屏的是哪个阶段产生的花屏。以视频录制为例,其具体流程如下:原创 2017-05-12 19:45:27 · 22581 阅读 · 5 评论 -
ffmpeg视频精准剪切
1. 导言ffmepg剪切视频,很方便,但是也有很大缺陷: (1)剪切时间点不精确 (2)有时剪切的视频开头有黑屏造成这些问题的原因是ffmpeg无法seek到非关键帧上。 一下本文通过一些参数配置尽可能地减轻以上问题2. 基本剪切方法ffmpeg -i test.mp4 -ss 10 -t 15 -codec copy cut.mp4参数分析: -i : source -ss:st原创 2016-11-14 11:33:26 · 65800 阅读 · 10 评论 -
B帧对视频清晰度/码率的影响
0. 前言在H264 Extended Profile中就引入了B帧编码,一直以来同行都对B帧的意义存在争议:正方:B帧能够大幅减少视频码率,并提高运动场景下的清晰度;反方:B帧对码率和清晰度没多大帮助笔者针对这个争议找了一个视频,用x264和Android MediaCodec测试验证B帧到底有没有优化效果。1. 什么是B帧1.1 什么是B帧?B帧法(B fra...原创 2018-09-16 18:18:51 · 16374 阅读 · 10 评论 -
android ffmpeg neno优化
1. 前言最近搞的视频监控项目,需要在android移动端做视频显示。用的是android ndk的开发方式, 利用ffmpeg作为解码库。640*480 分辨率下, 10帧每秒尚可正常播放, 但是15fps就比较吃力了,20fps就几乎不能看了。通过打日志的方式发现: 每显示一帧需要133毫秒,解码的时间占据了64毫秒,很显然, 解码已经成为了最大的瓶颈。 我们在网上搜了一圈之后,发现用转载 2016-11-14 14:37:08 · 1347 阅读 · 0 评论 -
音频采样率,时间戳分析
1. FFmpeg一个音频帧信息:2. pkt durationpkt_duration = nb_samples / sample_rate sample_rate = 48000 nb_samples = 1024 pkt_duration = 1024 / 48000 = 0.0213333. 显示时间与ptspresentation_time = pts / sample_原创 2016-11-14 14:27:33 · 2913 阅读 · 0 评论 -
ffmpeg在eclipse中的开发配置
我看过网上的许多文章,都是把ffmpeg的源文件采用Makefile的方式导入Eclispe中,然后在eclipse中编译,这样很麻烦,还出现很多问题。 本文的配置不同于其它文章的方法,首先在系统里编译安装ffmpeg, 然后在eclipse-cdt中建立C/C++程序,在编译链接的时候添加需要的库就行了,能够开发、编译、调试。1. ffmpeg的安装见Linux下ffmpe原创 2013-03-21 17:47:45 · 2069 阅读 · 0 评论 -
FFMPEG write 函数
FFMPEG write 函数:ffmpeg write:int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat, const char *format_name, const char *filename);//add streamAVCodec *avcodec_find_原创 2013-04-16 16:01:14 · 2133 阅读 · 0 评论 -
在64位Linux系统交叉编译32位软件:ffmpeg
在64位Linux系统中,如果不加设置,直接编译出来的软件是64位的,如果需要编译32位版本可以这么做:./configure --prefix=../ --extra-cflags="-m32" --extra-ldflags="-m32"makemake install原创 2013-04-17 16:23:49 · 6686 阅读 · 0 评论 -
Ubuntu 编译安装ffmpeg,mplayer,x264全教程支持VDPAU(高清硬解)
这个是针对Ubuntu 10.04 AMD64的安装ffmpeg,mplayer,x264全教程,包括VDPAUUbuntu 10.10AMD64也是可以的。目前mplayer仍然使用svn,编译mplayer时要把ffmpeg的代码拷贝进去。!libxvidcore4-dev 这个包在10.10里面是libxvidcore-dev 这个名字普通版我的工作根目录为~转载 2013-06-15 22:20:45 · 7024 阅读 · 0 评论 -
linux 编译ffmpeg 支持x264, x265
1. 前言本教程涉及的ffmpeg, x264, x2652. 环境依赖2.1 删除系统中安装的ffmpeg等库sudo apt-get --purge remove ffmpeg mplayer x264 x2652.2 安装依赖库sudo apt-get updatesudo apt-get -y --force-yes install autocon原创 2015-06-02 19:49:42 · 6273 阅读 · 0 评论 -
深入浅出FFMPEG
1. 认识FFMPEGFFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器。因此,对于从事多媒 体技术开发的工程师来说,深入研究FFMPEG成为一门必不可少的工作,可以这样说,FFMPEG之于多媒体开发工程师的重要性正如kernel之于嵌入 式系统工程师一般。几个小知识:FFMPEG项目是由法国人Fabrice Bellard发转载 2015-08-10 14:43:57 · 2532 阅读 · 1 评论 -
ffmpeg 查看YUV图片/视频
采用ffplay 查看YUV数据包括视频或者图片 ffplay [-f rawvideo] -video_size 640x480 test.yuv 注: (1)-f rawvideo : 经笔者测试这个选项可加可不加。 (2)yuv文件不包涵宽高数据所以必须用-video_size指定宽和高,格式为:widthxheight (3)test.yuv可以是一帧(图片)或者多帧(视频)数据原创 2015-10-28 16:39:55 · 13655 阅读 · 0 评论 -
ffmpeg视频剪切、转码
1. 命令实例ffmpeg -i source.mp4 -ss 20 -t 10 -c copy des.mp4 功能:将source.mp4截取[20s,30s]之间的数据,仅仅裁剪不转码,然后输出为des.mp42. 参数解析i : 输入视频 -ss:start time -t :duration -c :video,audio codec -vcodec xxx -acodec x原创 2015-10-28 16:32:37 · 3033 阅读 · 0 评论 -
ffmpeg 视频拼接
1. 视频拼接ffmpeg视频拼接需要用concat参数。 此外ffmpeg拼接的视频和原视频的封装格式有关2. ffmpeg视频拼接的几种方法2.1 利用文件列表# this is a commentfile '/path/to/file1'file '/path/to/file2'file '/path/to/file3'ffmpeg -f concat -i mylist.txt -c原创 2016-11-14 13:35:11 · 12394 阅读 · 0 评论 -
ffmpeg混音以及音视频混合
Duration = MAX(input a, v)1. Audio merge1.1 amerge-ac 2 speed upffmpeg -i test.mp4 -i test.mp3 -filter_complex "[0:a] [1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2 mix_amerge.aacPS: Without ac spee原创 2016-11-14 13:38:58 · 17295 阅读 · 3 评论 -
ffmpeg 调整音视频播放速度
1. 调整视频速率1.1 原理调整视频速率的原理为:修改视频的pts,dts 此过程由于不用进行解码编码,所以费时很少1.2 setpts修改视频速率ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv注意:调整速度倍率范围[0.25, 4]如果只调整视频的话最好把音频禁掉对视频进行加速时,如果不想丢帧,可以用-r 参数指原创 2016-11-14 14:01:58 · 29823 阅读 · 5 评论 -
AudioChannelManipulation
Manipulating audio channels with ffmpegContentsstereo → mono streamstereo → 2 × mono filesstereo → 2 × mono streamsmono → stereo2 × mono → stereo6 × mono → 5.15.1 → 6 × mono5.1 → stereo2转载 2016-11-14 14:06:09 · 1547 阅读 · 1 评论 -
Linux下ffmpeg安装与开发配置
1. ffmpeg安装安装环境:ubuntu 12.04(1)删除已安装的文件,避免冲突sudo apt-get remove ffmpeg x264sudo apt-get autoremove(2)安装需要的支持sudo apt-get install make automake g++ bzip2 python unzip patch subversio原创 2013-03-21 17:20:40 · 3279 阅读 · 0 评论