ffmpeg linux安装_教你linux下实现ffmpeg+sdl视音频播放

FFMPEG的视音频编解码功能非常强大,几乎囊括了现存所有的视音频编码标准,但是它没有音频和视频的编码库,本节介绍在linux下,安装FFMEPG,并集成音视频编码,SDL库的方法。

1、下载最新的安装代码。

H264 编码库 :http://www.videolan.org/developers/x264.html

NASM汇编器:https://www.nasm.us/

LAME 编码库:https://sourceforge.net/projects/lame/

SDL : http://www.libsdl.org/

FFMPEG : http://www.ffmpeg.org/

2、 安装lame

./configure

make

make install

3、安装X264

./configure --enable-shared

make

make install

注意,一定要使用--enable-shared参数

如果安装过程中遇到错误提示

则表示需要安装nasm更高版本

4. 安装nasm

./configure

make

make install

5、安装SDL

./configure make make install

6、安装FFMPEG

cb38817be31aa5aec42ea49af3f4a392.png

FFmpeg官方说明

FFmpeg是一个领先的多媒体框架,能够编码,解码,转码,多路复用,解复用,流,滤波,同时播放任何机器和人创造的美好的事物。它支持非常多的视频格式包括那些很老的格式。不管它们是被一些标准委员会、社区或者公司设计的。它也是高度可移植的:FFmpeg 在各种构建环境下,机器体系架构下和配置下编译,可以在Linux, Mac OS X,Microsoft Windows, BSDS, Solaris等基础机构下运行。 FFmpeg包含可供应用程序使用的libavcodec,libavutil,libavformat,libavdevice,libwscale和libswresample。和ffmpeg,ffplay和ffprobe一样,用户可以使用ffmpeg来进行转码和播放。

48f7262efc25241e7cb1d0bcdf5cb82b.png

为什么需要ffmpeg

手动获取rtsp视频流保存到本地

  1. 实现rtsp客户端,接收音视频包
  2. 解视频包(rtp->h264)
  3. 解音频包(rtp->PCM(alaw))
  4. 音频转码(PCM->AAC)
  5. 重新封装音视频包

视音频编解码技术学习

不同的电影有不同的格式,用不同的后缀表示:avi、rmvb、mp4、flv、mkv等等,这些格式代表的是封装格式。封装格式就是把视频数据和音频数据打包成一个文件的规范。仅仅靠看文件的后缀,很难看出具体使用的是什么视音频编码标准。总的来说,不同的封装格式之间差距不大,各有优劣。

98d93191efa77ab0ae2bcb71803aa58c.png

视频播放器原理

视音频技术主要包含以下几点:封装技术、视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。 视频播放器原理:视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,只需要解封装、解码视音频,视音频同步。

50eb58c2a9db0b762188e7a96d4a48d3.png

流媒体协议

流媒体协议是服务器和客户端之间通信遵循的规定。当前网络上主要的流媒体协议如表所示。

f44c64bbb72e8bca7fe8b0cd120d5502.png
fbef52ce35aae5ecac9080e9a8c62a54.png

封装格式

封装格式的主要作用是把视频码流和音频码流安装一定的格式存储到一个文件中。现如今流行的封装格式如下

ab250ee039092b12046b9474d9eee41c.png

视频编码

视频编码的主要作用是将视频像素数据压缩成为视频码流,从而降低视频的数据量。如果视频不经过压缩编码的话,体积通常是非常大的。视频编码是视音频中最重要的技术之一。视频码流的数据量占了视音频总数据量的绝大部分。高效率的视频编码在同等的码率下,可以获得更高的视频质量。 注:视频编码技术在整个视音频中应该是最复杂的技术。

fb8d4c30096402e9da954adaa0ddbdaa.png

音频编码

音频编码的主要作用是将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。音频编码也是互联网视音频中一个重要的技术。但是一般情况在音频的数据量要远小于视频的数据量,因为即使使用稍微落后的音频编码标准,而导致音频数据量有所增加,也不会对视音频的总数据量产生太大的影响。高效率的音频编码在同等的码率下,可以获得更高的音质。

147053c298ddaad584b8cc8ea05062c1.png
32f27db457971d5b8ae76a0d916ef06b.png

总结:私信‘资料’免费领取 高效率的视频编码在同等的码率下,可以获得更高的视频质量。高效率的音频编码在同等的码率下,可以获得更高的音质。虽然不太理解内部原理,但所谓编码,就是压缩,压缩就会损失数据量,损失数据量就会导致视音频质量变差,也就是说视音频编码就是挑出视频数据中更为有代表性的数据,然后传输,解码,获得更高质量的视音频。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值