首页 > 系统相关 >FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid

FFmpeg开发笔记(二十八)Linux环境给FFmpeg集成libxvid

时间:2024-06-09 11:33:01浏览次数:24  
标签:enable FFmpeg -- make libxvid Linux XviD

​XviD是个开源的视频编解码器,它与DivX一同被纳入MPEG-4规范第二部分的视频标准,但DivX并未开源。早期的MP4视频大多采用XviD或者DivX编码,当时的视频格式被称作MPEG-4。现在常见的H.264后来才增补到MPEG-4规范的第十部分,当然如今使用XviD压缩的视频已经不多了。

在《FFmpeg开发实战:从零基础到短视频上线》一书的“2.1.1  音视频编码的发展历程”提到“MPEG-4标准的第二部分规定了视频的编解码器比如Xvid”,只是XviD格式已经逐渐被H.264标准取代,所以该书并未介绍如何给FFmpeg集成XviD。下面就介绍如何在Linux环境给FFmpeg集成XviD的编解码库libxvid。

一、安装libxvid

libxvid的源码下载页面是https://labs.xvid.com/source/,最新的1.3.7版本于2019年12月发布,该版本源码包的下载链接为https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz。
libxvid的安装步骤说明如下。
1、将下载好的压缩包上传到服务器并解压,也就是依次执行以下命令。

tar zxvf xvidcore-1.3.7.tar.gz
cd xvidcore

2、进入解压后的build/generic目录,运行下面命令配置libxvid。

cd build/generic
./configure

3、运行下面命令编译libxvid。

make -j4

4、编译完成后,运行下面命令安装libxvid。

make install

二、启用libxvid

由于FFmpeg默认未启用libxvid,因此需要重新配置FFmpeg,标明启用libxvid,然后重新编译安装FFmpeg。FFmpeg的Linux环境完整编译过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3  自行编译与安装FFmpeg”,详细的启用步骤说明如下。
1、回到FFmpeg源码的目录,执行以下命令重新配置FFmpeg,主要增加启用libxvid。(增加了选项--enable-libxvid)

./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --disable-doc --enable-zlib --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-libfreetype --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-openssl --enable-libaom --enable-libsvtav1 --enable-libdav1d --enable-libuavs3d --enable-libwebp --enable-libxvid --enable-iconv --enable-gpl --enable-nonfree

2、运行下面命令编译FFmpeg。

make clean
make -j4

3、执行下面命令安装FFmpeg。

make install

4、运行以下命令查看FFmpeg的版本信息。

ffmpeg -version

查看控制台回显的FFmpeg版本信息,找到“--enable-libxvid”,说明FFmpeg正确启用了XviD的编解码器libxvid。

标签:enable,FFmpeg,--,make,libxvid,Linux,XviD
From: https://www.cnblogs.com/aqi00/p/18199506

相关文章

  • pxe批量部署linux介绍
    1、PXE批量部署的作用及必要性: 1)智能实现操作系统的批量安装(无人值守安装) 2)减少管理员工作,提高工作效率 3)可以定制操作系统的安装流程 a.标准流程定制(ks.cfg) b.自定义流程定制(ks.cfg(%post))2、通过dhcp+tftp+nfs/http/ftp+kickstart(ks.cfg)+DNS1、客户......
  • Linux:基本指令
    文章目录ls指令pwd指令cd指令touch指令mkdir指令rmdir指令&&rm指令cp指令man指令echo指令输出重定向追加重定向cat指令输入重定向mv指令which指令alias指令more&&less指令head&&tail指令事件相关的指令date显示时间戳cal指令find指令grep指令zip&&unzip指令ta......
  • Linux -- 简单的文本处理
    提示:制作不易,可以点个收藏和关注哦。前言 这一节我们将介绍这几个命令 tr(注意不是tar),col,join,paste。实际这一节是上一节关于能实现管道操作的命令的延续,所以我们依然将结合管道来熟悉这些文本处理命令的使用。提示:以下是本篇文章正文内容,下面案例可供参考.一、tr命......
  • Linux -- 正则表达式基础
    提示:制作不易,可以点个关注和收藏哦。前言        虽然我们这一节的标题是正则表达式,但实际这一节实验只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式)。正则表达式本身的内容很多,要把它说明清楚需要单独一门......
  • linux脚本编写备忘
    linux脚本编写备忘1、linux脚本的回车换行符最好用unix格式的。否则某些系统下运行会出错,例如veket18中必须要求是LF格式。Unix系统(包括Linux和macOS):使用LF(LineFeed,\n)字符作为行结束符。在ASCII码表中,LF字符的十进制表示为10。Windows系统:使用CRLF(Carriage......
  • Linux服务器配置一个简单的DNS
    配置一个简单的DNS服务器可以使用BIND (BerkeleyInternetNameDomain)。配置DNS的步骤如下一、安装BINDsudoapt-updatesudoapt-getinstallbind9二、配置BIND。编辑 /etc/bind/named.conf.local 文件,添加一个简单的zone配置zone"example.com"{  typemas......
  • Linux内核链表源代码
    /*SPDX-License-Identifier:GPL-2.0*/#ifndef_LINUX_LIST_H#define_LINUX_LIST_H#include<linux/types.h>#include<linux/stddef.h>#include<linux/poison.h>#include<linux/const.h>#include<linux/kernel.h>/**Simple......
  • Linux之系统故障汇总
    一、系统可能会出现的故障1、管理员密码忘记2、系统无法正常启动grub损坏(MBR损坏、grub配置文件丢失)系统初始化故障(某文件系统无法正常挂载、驱动不兼容)服务故障用户无法登录系统(bash程序故障)3、命令无法运行4、编译过程无法继续(开发环境缺少基本组件)二、单用......
  • 树莓派 linux安装PyBlueZ报错:fatal error: bluetooth/bluetooth.h: No such file or d
    IwanttobuildacfilebasedonBlueZbutseemsnobluetooth.hfileinmysystem.fatalerror:bluetooth/bluetooth.h:NosuchfileordirectoryIamsurethebluetoothdongleisrunningcorrectlyandIhavebuiltBluezsuccessfully.UpdateFormyca......
  • 【Linux】进程3——PID/PPID,父进程,子进程
    在讲父子进程之前,我们接着上面那篇继续讲1.查看进程mycode.cmakefile我们在zs_108直接编译mycode.c,直接运行,然后我们转换另一个账号来查看这个进程我们可以通过ps指令来查看进程  我们就会好奇了,第二行是什么?我们查的是第一行的啊那个是指令的ps的进程PID有什......