当前位置:首页 » 编程软件 » ffmpeg添加字幕编译

ffmpeg添加字幕编译

发布时间: 2024-07-08 07:23:46

㈠ ffmpeg编译视频加上字幕

ffmpeg编译及使用ffmpeg编译及使用

1 ffmpeg介绍

ffmpeg是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库。它被mplayer或者xine使用作为解码器。还有,国内比较流行的播放器影音风暴或MyMPC的后端ffdshow也是使用ffmpeg的解码库的。

ffmpeg软件包经编译过后将生成三个可执行文件,ffmpeg,ffserver,ffplay。其中ffmpeg用于对媒体文件进行处理,ffserver是一个http的流媒体服务器,ffplay是一个基于SDL的简单播放器。

ffmpeg中有五个库文件,libavcodec,libavformat,libavutil,libswscale,libpostproc,其中库libavcodec,libavformat用于对媒体文件进行处理,如格式的转换;libavutil是一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等功能;libswscale,libpostproc暂时不知道何用。

2 ffmpeg下载

最新的ffmpeg可以通过svn下载,SVN辅助的软件有:

SubVersion,从 http://subversion.tigris.org/ 下载,支持linux

TortoiseSVN,从 http://tortoisesvn.tigris.org/ 下载,是很不错的SVN客户端程序,为windows外壳程序集成到windows资源管理器和文件管理系统的Subversion客户端,用起来很方便。

subversion安装,记住最好之前装过apr和apr-util,在apache.org网站能下到

wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz

tar zvxf subversion-1.3.2.tar.gz

cd subversion-1.3.2

./configure --with-apr=/usr/local/apr-httpd --with-apr-util=/usr/local/apr-util-httpd/

make

make install

如果安装了FC6,它已经带了svn,不用装了。

ffmpeg的下载:我们就可以通过svn命令获取最新的ffmpeg,命令如下:

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

3 ffmpeg支持库的安装

* xvid

xvid的获取地址如下:

http://www.xvid.org/

wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz

配置编译

for x86

#./configure --prefix=/usr/local

#make

#make install

for arm

#CC=arm-linux-gcc ./configure --prefix=/usr/local/arm/arm-linux --build=i686-pc-linux --host=arm-linux --target=arm-linux

#make

#make install

* x264

x264的获取地址如下:

svn co svn://svn.videolan.org/x264/trunk x264

配置编译

for x86

#./configure --enable-shared --prefix=/usr/local

#make

#make install

for arm

#CC=arm-linux-gcc ./configure --enable-pthread --enable-shared --host=arm-linux

--prefix=/usr/local/arm/arm-linux

#make

#make install

* 支持mp3

lame的获取地址如下: http://lame.sourceforge.net/index.php

配置编译

for x86

./configure --enable-shared --prefix=/usr/local

* 支持Ogg Vorbis:

* AC3和dts编码的支持

libdts编译参数

./configure --prefix=/usr

make

make install

* mpg4 aac格式支持,如果ffserver服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行,下载请到http://www.audiocoding.com/moles/mydownloads/,http://prdownloads.sourceforge.net/faac

FAAD2的编译

cd faad2

autoreconf -vif

./configure --prefix=/usr --with-mp4v2 --enable-shared

make

make install

faac的编译

cd faac

chmod +x bootstrap

./bootstrap

./configure --prefix=/usr --with-mp4v2 --enable-shared

make

make install

在编译ffmpeg,在configure时加上--enable-amr_nb --enable-faad --enable-faac参数。

* 支持3gp格式,这也是现在好多手机支持的格式,所以也得支持编译

编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。

源码网址:http://www.3gpp.org/ftp/Specs

wget http://www.3gpp.org/ftp/Specs/ar ... 6.204/26204-510.zip

解压以后把里面的文件都拷贝到libavcodec/amrwb_float

wget http://www.3gpp.org/ftp/Specs/ar ... 6.104/26104-510.zip

解压以后把里面的文件都拷贝到libavcodec/amr_float

* ffmpeg支持VC1格式

微软ASF格式的三个版本,WMV1,WMV2,WMV3分别对应MediaPlayer的版本7,8和9,所以很多时候会称VC1为WMV3或 WMV9,都是它了,有时候在代码里,也能看到称呼它为VC9的。因为微软还没有正式公开这种格式,所以当前对VC1的支持还很不完善。本文基本是根据Multimedia Mike的一篇博客翻译和完善而来。

(1) 首先要下载 SMPTE VC-1 reference decoder,这个组织是要收费的,可以从这里下载免费的。

(2) 在ffmpeg目录下的libavcodec目录下面,建立目录libvc1。

(3) 将VC1_reference_decoder_release6/decoder/目录中的*.c和*.h文件全部到libvc1目录下。

(4) 将VC1_reference_decoder_release6/shared/目录中的*.c和*.h文件全部到libvc1目录下。

(5) 将 libvc1-makefile.txt放到libvc1下的Makefile文件。

(6) 将smpte-vc1.c文件放到libavcodec目录下。

(7) 修改libavcodec目录下的vc9.c,将文件最后的wmv3_decoder这个AVCodec的structure,用#if 0和#endif包含起来,也就是使它失效了。

(8) 修改libavcodec目录下的allcodecs.c

㈡ ffmpeg 命令大全

前言
FFMPEG是特别强大的专门用于处理音视频的开源库。你既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑你的音视频文件。
本文将简要介绍一下 FFMPEG 库的基本目录结构及其功能,然后详细介绍一下我们在日常工作中,如何使用 ffmpeg 提供的工具来处理音视频文件。

在讲解 FFMPEG 命令之前,我们先要介绍一些音视频格式的基要概念。

我们按使用目的可以将 FFMPEG 命令分成以下几类:

除了 FFMPEG 的基本信息查询命令外,其它命令都按下图所示的流程处理音视频

先是解复用获取到编码的数据包,然后将编码的数据包传送给解码器(除非为数据流选择了流拷贝,请参阅进一步描述)。 解码器产生未压缩的帧(原始视频/ PCM音频/ ...),可以通过滤波进一步处理(见下一节)。 在过滤之后,帧被传递到编码器,编码器并输出编码的数据包。 最后,这些传递给复用器,将编码的数据包写入输出文件。

默认情况下,ffmpeg只包含输入文件中每种类型(视频,音频,字幕)的一个流,并将其添加到每个输出文件中。 它根据以下标准挑选每一个的“最佳”:对于视频,它是具有最高分辨率的流,对于音频,它是具有最多channel的流,对于字幕,是第一个字幕流。 在相同类型的几个流相等的情况下,选择具有最低索引的流。

您可以通过使用-vn / -an / -sn / -dn选项来禁用某些默认设置。 要进行全面的手动控制,请使用-map选项,该选项禁用刚描述的默认设置。

FFMPEG 可以使用下面的参数进行基本信息查询。例如,想查询一下现在使用的 FFMPEG 都支持哪些 filter,就可以用 ffmpeg -filters 来查询。详细参数说明如下:

查询编译器libfdk_aac的信息

FFMPEG 处理音视频时使用的命令格式与参数

ffmpeg 通过 -i 选项读取输任意数量的输入“文件”(可以是常规文件,管道,网络流,抓取设备等,并写入任意数量的输出“文件”。

原则上,每个输入/输出“文件”都可以包含任意数量的不同类型的视频流(视频/音频/字幕/附件/数据)。 流的数量和/或类型是由容器格式来限制。 选择从哪个输入进入到哪个输出将自动完成或使用 -map 选项。

要引用选项中的输入文件,您必须使用它们的索引(从0开始)。 例如。 第一个输入文件是0,第二个输入文件是1,等等。类似地,文件内的流被它们的索引引用。 例如。 2:3是指第三个输入文件中的第四个流

上面就是 FFMPEG 处理音视频的常用命令,下面是一些常用参数

首先通过下面的命令查看一下 mac 上都有哪些设备。

注意,桌面的输入对帧率没有要求,所以不用限制桌面的帧率。其实限制了也没用。

由于没有解码或编码,速度非常快,没有质量损失。 但是,由于许多因素,在某些情况下可能无法正常工作。 应用过滤器显然也是不可能的,因为过滤器处理未压缩的数据

上面的命令表式的是音频、视频都直接 ,只是将 mp4 的封装格式转成了flv。

在编码之前,ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。 几个链式过滤器形成一个过滤器图形。 ffmpeg区分两种类型的过滤器图形:简单和复杂。

请注意,某些滤镜会更改帧属性,但不会改变帧内容。 例如。 上例中的fps过滤器会改变帧数,但不会触及帧内容。 另一个例子是setpts过滤器。

复杂的过滤器图使用-filter_complex选项进行配置。 请注意,此选项是全局性的,因为复杂的过滤器图形本质上不能与单个流或文件明确关联。

-lavfi选项等同于-filter_complex。

一个复杂的过滤器图的一个简单的例子是覆盖过滤器,它有两个视频输入和一个视频输出,包含一个视频叠加在另一个上面。 它的音频对应是amix滤波器

添加文字水印

添加本地时间水印

https://www.jianshu.com/p/e4ad7e1e7ed5

先通过 ffplay 找到要删除 LOGO 的位置

使用 delogo 滤镜删除 LOGO

crop 格式:crop=out_w:out_h:x:y

https://blog.csdn.net/matrix_laboratory/article/details/53158307

首先创建一个 inputs.txt 文件,文件内容如下:

然后执行下面的命令:

播放yuv数据,需要指定分辨率

热点内容
安卓收款机下载什么应用能收款 发布:2024-10-06 09:38:29 浏览:999
java初级工程师面试题 发布:2024-10-06 09:37:49 浏览:216
知鸟在哪里修改密码 发布:2024-10-06 09:37:10 浏览:302
怎么更改微信钱包密码 发布:2024-10-06 09:28:08 浏览:548
控制中心不支持配置怎么办 发布:2024-10-06 09:16:39 浏览:810
地暖存储罐 发布:2024-10-06 09:10:19 浏览:579
搭建模型服务器 发布:2024-10-06 09:05:23 浏览:844
java使用类 发布:2024-10-06 09:05:22 浏览:930
python图形界面开发 发布:2024-10-06 08:59:53 浏览:747
ftp上传地址 发布:2024-10-06 08:59:47 浏览:33