C/C++提升 | 基于FFmpeg的视频播放器
Posted 学益得智能硬件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++提升 | 基于FFmpeg的视频播放器相关的知识,希望对你有一定的参考价值。
最近在逛 GitHub 的时候,看到了一个用 FFmpeg 和 SDL 实现的视频播放器的项目,语言C++,代码量不大,难度系数也比较小,很适合有C/C++基础的同学。所以把环境搭建的过程共享出来,供有需要的同学学习使用。
项目描述
基于 FFmpeg(解码) 和 SDL2(播放) 的视频播放器,可以使用空格键控制暂停和继续。
语言
C/C++
平台
Ubuntu 16.04
安装SDL2
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。SDL内置了调用OpenGL的函数。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。
https://www.libsdl.org/download-2.0.php
编译安装:
apt-get install xorg-dev
tar -xzf SDL2-2.0.14.tar.gz
cd SDL2-2.0.14/
./configure --enable-video-x11 --enable-x11-shared --enable-video-x11-vm
make -j4
make install
安装FFmpeg
FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行。
https://github.com/FFmpeg/FFmpeg
编译安装:
apt-get install yasm
unzip FFmpeg-master.zip
cd FFmpeg-master
./configure
make -j4
make install
编译运行源码
https://github.com/pockethook/player
修改makefile文件,LDLIBS后面添加:
-lz -lm -lswresample
编译源码:
make
制作动态链接库:
ln -s /usr/local/lib/libSDL2-2.0.so.0.14.0 /usr/lib/libSDL2-2.0.so.0
运行程序:
./player test.mp4
暑期临近,学益得智能硬件暑期集训报名已经开启。如果你有提升需求,想在秋招中大展身手,欢迎扫码咨询。
以上是关于C/C++提升 | 基于FFmpeg的视频播放器的主要内容,如果未能解决你的问题,请参考以下文章
最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0)