`

用ffmpeg打造linux转码服务器

 
阅读更多

linux在系统资源利用上确实要比windows强很多,所以对于转码工作我们也放到linux平台上,下面就来讲下在linux配置ffmpeg来打造一个转码的环境。

首先我们需要以下的解码包,地址如下

xvidcode    http://www.xvid.org/Downloads.43.0.html#c23
yasm        http://www.tortall.net/projects/yasm/wiki/Download
amr code    http://www.penguin.cz/~utx/amr
faac        http://sourceforge.net/project/showfiles.php?group_id=704
lame        http://sourceforge.net/project/showfiles.php?group_id=290&package_id=309
其他解码    http://www.mplayerhq.hu/MPlayer/releases/codecs/
ffmpeg      http://www.ffmpeg.org/download.html
x264        http://downloads.videolan.org/pub/videolan/x264/snapshots/

使用包如下

amrnb-7.0.0.2.tar.bz2
amrwb-7.0.0.3.tar.bz2
faac-1.28.tar.bz2
faad2-2.7.tar.bz2
lame-398-2.tar.gz
yasm-0.8.0.tar.gz
x264-snapshot-20090426-2245.tar.bz2    这个可以去上面的网站下载最新的snapshot文件
xvidcore-1.2.1.tar.gz
ffmpeg-checkout-snapshot.tar.bz2       这个可以去上面的网站下载最新的checkout文件,当然也可以使用svn获取最新的文件
其他编码的解码插件请下载all-20071007.tar.bz2包就行了

下面就来说下安装步骤,总体来说安装步骤还是很容易的,讲所有下载好的包放到当前用户根目录下的ffmpeg文件夹中

cd ~/ffmpeg/
tar jxvf amrnb-7.0.0.2.tar.bz2
cd amrnb-7.0.0.2
./configure --prefix=/usr
mv ../26104-700.zip .
make
make install

cd ~/ffmpeg/
tar jxvf amrwb-7.0.0.3.tar.bz2
cd amrwb-7.0.0.3
./configure --prefix=/usr
mv ../26204-700.zip .
make
make install

cd ~/ffmpeg/
tar jxvf faac-1.28.tar.bz2
cd faac-1.28
./bootstrap
./configure --prefix=/usr --with-mp4v2
make
make install

cd ~/ffmpeg/
tar jxvf faad2-2.7.tar.bz2
cd faad2-2.7
./bootstrap
./configure --prefix=/usr --with-drm --with-mpeg4ip
make
make install

cd ~/ffmpeg/
tar zxvf lame-398-2.tar.gz
cd lame-398-2
./configure --prefix=/usr --enable-decode-layer1 --enable-mp3x --enable-mp3rtp --enable-all-float
make
make install

cd ~/ffmpeg/
tar zxvf yasm-0.8.0.tar.gz
cd yasm-0.8.0
./configure
make
make install

cd ~/ffmpeg/
tar jxvf x264-snapshot-20090426-2245.tar.bz2
cd x264-snapshot-20090426-2245
./configure --prefix=/usr --enable-shared
make
make install

cd ~/ffmpeg/
tar zxvf xvidcore-1.2.1.tar.gz
cd xvidcore
cd build/generic/
./configure --prefix=/usr
make
make install

cd ~/ffmpeg/
tar jxvf ffmpeg-checkout-snapshot.tar.bz2
cd ffmpeg-checkout-2009-04-20
./configure --enable-gpl --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libamr-nb --enable-libamr-wb --enable-libxvid --enable-libx264 --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-pthreads --disable-ffserver --disable-ffplay --enable-nonfree --enable-postproc --extra-ldflags=-ldl
make
make install

mkdir -p /usr/local/lib/codes
tar jxvf all-20071007.tar.bz2
mv all-20071007 /usr/local/lib/codes/
chown root.root /usr/local/lib/codes/all-20071007/*

以上安装完毕之后,编辑/etc/ld.so.conf文件加入如下内容
/usr/local/lib
保存退出后执行ldconfig命令,然后执行ffmpeg命令就能看到如下显示了

FFmpeg version SVN-r18631, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-shared --enable-libmp3lame --enable-libvorbis --enable-libamr-nb --enable-libamr-wb --enable-libxvid --enable-libx264 --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-pthreads --disable-ffserver --disable-ffplay --enable-nonfree --enable-postproc --extra-ldflags=-ldl
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.27. 0 / 52.27. 0
  libavformat   52.32. 0 / 52.32. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Apr 27 2009 15:23:16, gcc: 4.1.2 20071124 (Red Hat 4.1.2-42)

可能各位的显示结果会和我的不同。

以上配置完毕后,生产mp4文件的转码系统就算是搭建好了,不过这样生产出来的mp4文件是不支持渐进式下载的,所以还需要对生产出来的mp4文件进行处理,那个就是MP4Box这个软件的工作了,接下来就讲下MP4Box安装步骤

yum -y install freeglut
yum -y install freeglut-devel
wget http://downloads.sourceforge.net/gpac/gpac-0.4.5.tar.gz
wget http://downloads.sourceforge.net/gpac/gpac_extra_libs-0.4.5.tar.gz
tar zxvf gpac-0.4.5.tar.gz
tar zxvf gpac_extra_libs-0.4.5.tar.gz
cd gpac
cp -r ../gpac_extra_libs/* extra_lib/
chmod +x configure
./configure
make lib
make apps
make install
cp bin/gcc/libgpac.so /usr/lib

再安装完MP4Box之后同样要执行一次ldconfig命令,然后执行MP4Box -version命令后可以看到如下内容

# MP4Box -version
MP4Box - GPAC version 0.4.5 (build 33)
GPAC Copyright: (c) Jean Le Feuvre 2000-2005
                (c) ENST 2005-200X

这样一来所有的工作就都做完了,剩下的就是按照自己的需要写ffmpeg的转码脚本了

问题解决:

在安装MP4Box的时候可能会出现下面的问题

/usr/bin/ld: skipping incompatible /usr/lib/libGL.so when searching for -lGL/usr/bin/ld: cannot find -lGLcollect2: ld returned 1 exit statusmake[1]: *** [libgpac.so] Error 1make[1]: Leaving directory `/root/gpac/src'make: *** [lib] Error 2

原因是mesa-libGL-devel这个包可能不完整,直接使用yum -y install mesa-libGL-devel命令把这个包安装一下,然后在make的时候就正常了。

分享到:
评论

相关推荐

    ffmpeg服务器转换视频切片上传oss服务

    ffmpeg服务器转换视频切片上传oss服务,ffmpeg将mp4视频转m3u8、ts,上传oss实现项目视频分片加载,防用户下载

    linux下ffmpeg获取视频流

    本篇将深入探讨如何使用FFmpeg在Linux系统中获取视频流。 一、FFmpeg基础 FFmpeg是由Fabrice Bellard发起的开源项目,其核心是一个库——libavcodec,用于编码/解码,libavformat用于处理容器格式,libavfilter用于...

    ffmpeg 3.0.2 linux专用安装包

    完成上述步骤后,你就可以在Linux终端中使用`ffmpeg`命令来执行各种多媒体处理任务了。例如,你可以使用`ffmpeg -i input.mp4 output.mp3`来将一个MP4视频转换为MP3音频。 FFmpeg的使用非常灵活,通过命令行参数...

    rtsp server rtsp服务器 linux ubuntu版本 包括ffmpeg库

    在部署和使用这个RTSP服务器时,需要了解基本的Linux命令行操作,以及FFmpeg和RTSP协议的相关知识。开发者可以通过修改源代码、调整FFmpeg配置来定制服务器的行为,比如增加新的编码支持、优化性能等。同时,为了...

    ffmpeg-3.4.8-rtmp-hevc-src-linux.zip

    FFmpeg是一个开源项目,提供了一套跨平台的音频和视频处理工具,包括解码、编码、转码、封装、过滤和播放等多种功能。在你提供的资料中,`ffmpeg-3.4.8-rtmp-hevc-src-linux.zip` 是一个针对Linux平台的FFmpeg源码包...

    Linux下安装ffmpeg库

    - **FFmpeg**是一款强大的跨平台音视频处理工具集,能够进行音视频的编码、解码、转码、复用、解复用、流媒体传输、滤镜处理等功能。 - 它包含了一系列用于处理多媒体数据的库和程序,如`ffmpeg`(命令行工具)、`...

    C#开发的在线或本地视频转码成ts或其他文件代码

    总结,本项目提供了C#环境下使用FFmpeg进行视频转码的解决方案,包括从本地或在线源拉取视频流,转码为TS格式或其他格式。在实际应用中,开发者需要考虑各种因素,如错误处理、性能优化和用户体验,以实现高效、可靠...

    FFmpeg安装文件,用于linux编译安装

    总之,FFmpeg是一个功能强大的多媒体处理工具,通过在Linux上编译安装,我们可以根据需求定制功能,同时利用其API和命令行工具实现各种音视频处理任务,包括但不限于视频转码、流媒体服务器的搭建等。理解FFmpeg的...

    python操作ffmpeg对摄像头rtsp流进行自动转码-.pdf

    为解决该问题,提出了使用中间服务器配置开源 FFmpeg 的解决方案。 背景 -------- 公司最近有个项目,需要将几个景点的监控摄像头在安卓机顶盒和 AVB 中间件机顶盒上做网络直播播放。如果不通过设备中继,让机顶盒...

    ffmpeg及web源码.rar

    在嵌入式Linux系统中使用FFmpeg,首先需要将其移植到目标平台。这包括配置编译选项,确保库文件与硬件架构兼容,以及解决依赖问题。移植过程中可能涉及到交叉编译、裁剪功能以适应资源有限的环境,以及优化性能以...

    (带一键安装脚本sh)Linux编译ffmpeg并转换MP3到AMR.zip

    这个压缩包文件 "ffmpeg_by_lenovo_ccc" 提供了一个一键安装脚本 `sh` 文件,简化了在Linux系统上安装FFmpeg的过程。 首先,让我们深入了解FFmpeg的安装过程。通常,Linux系统中的软件包管理器如apt(Debian/Ubuntu...

    ffmpeg-5-linux.rar_ffmepg_ffmepg for windows_ffmepg0.5_ffmpeg_ff

    2. **支持Linux和Windows平台**:这强调了跨平台兼容性,使得开发者和用户在不同操作系统环境下都能使用 FFmpeg。 3. **可转换多种格式**:FFmpeg 的一大特性就是支持多种音频、视频和图像格式的转换,包括常见的如 ...

    ffmpeg4.2.4-rtmp-hevc-src-linux

    FFmpeg是一个开源项目,用于处理音频和视频的多媒体框架,其功能包括编码、解码、转码、流媒体以及各种转换。在这个“ffmpeg4.2.4-rtmp-hevc-src-linux”压缩包中,我们关注的是FFmpeg的4.2.4版本,特别针对Linux...

    FFmpeg各个平台动态库

    FFmpeg的安卓端动态库(linux_andriod_ffmpeg_lib)使得开发者能够在Android应用中实现音视频的编码、解码、转码、播放等功能。由于Android设备的硬件多样性,FFmpeg库需要针对不同的CPU架构进行优化,本资源包提供...

    最简单的基于FFmpeg的推流器(以推送RTMP为例)

    在本文中,我们将深入探讨如何使用FFmpeg实现一个最简单的基于RTMP(Real-Time Messaging Protocol)的推流器,这允许你将本地视频内容实时推送到流媒体服务器,如YouTube Live、Twitch等。 首先,让我们理解RTMP...

    ffmpeg(aarch64)源代码

    这意味着开发者可以使用同一套源代码为不同类型的ARM设备构建FFmpeg,减少了维护和适配的工作量。 版本号 "N-92407-gfd1d735" 是FFmpeg的一个开发版本,表示它是在主线分支的第92407次提交后的某个版本,gfd1d735是...

    PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件

    接下来,我们需要在Linux服务器上安装FFMPEG,这是一个强大的音频和视频处理工具。同时,为了实现H264编码,还需要安装h264编码器。在CentOS 5.4环境下,可以按照以下步骤进行安装: 1. 解压缩h264扩展的源代码包,...

    rtsp-video-server:基于Live555和FFmpeg的RTSP视频流服务器实现

    《rtsp-video-server:Live555与FFmpeg构建实时RTSP视频流服务器解析》 在信息技术领域,视频流服务已经成为不可或缺的一部分,特别是在实时通信、监控系统和在线视频平台等应用中。本文将深入探讨一个名为"rtsp-...

    ubuntu 使用gnome开终端进行ffmpeg推流本地桌面

    在这个场景下,我们将讨论如何在Gnome环境下使用FFmpeg将本地桌面推送到RTMP服务器,实现视频直播。 首先,让我们了解基本概念: 1. **Ubuntu**:Ubuntu是基于Debian的Linux发行版,以其易用性和稳定性受到全球...

    Linux环境下部署视频red5-ffmpeg

    在Linux环境中部署视频服务,尤其是使用Red5和FFmpeg,是一项关键任务,因为这涉及到多媒体内容的处理和分发。Red5是一个开源流媒体服务器,它支持RTMP、HLS和RTSP等协议,而FFmpeg则是一个强大的跨平台多媒体处理...

Global site tag (gtag.js) - Google Analytics