C/C++提升 | 基于FFmpeg的视频播放器

Posted 学益得智能硬件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++提升 | 基于FFmpeg的视频播放器相关的知识,希望对你有一定的参考价值。


作者 | Lee


最近在逛 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 #安装SDL需要的视频驱动tar -xzf SDL2-2.0.14.tar.gzcd SDL2-2.0.14/./configure --enable-video-x11 --enable-x11-shared --enable-video-x11-vmmake -j4make install


安装FFmpeg


FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行。     



https://github.com/FFmpeg/FFmpeg

 


编译安装:


apt-get install yasmunzip FFmpeg-master.zipcd FFmpeg-master./configuremake -j4make 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的视频播放器


C/C++提升 | 基于FFmpeg的视频播放器

C/C++提升 | 基于FFmpeg的视频播放器


暑期临近,学益得智能硬件暑期集训报名已经开启。如果你有提升需求,想在秋招中大展身手,欢迎扫码咨询。





以上是关于C/C++提升 | 基于FFmpeg的视频播放器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FFmpeg C/C++ 中寻找

基于ffmpeg+SDL视频播放器制作任务概述

最简单的基于FFMPEG+SDL的视频播放器 ver2 (採用SDL2.0)

QT软件开发-基于FFMPEG设计视频播放器-解码音频

QT软件开发-基于FFMPEG设计视频播放器-GPU硬解图像

[开源]基于ffmpeg和libvlc的视频剪辑播放器