基于 FFmpeg 的跨平台视频播放器简明教程(一):FFmpeg + Conan 环境集成

系列文章目录

  1. 基于 FFmpeg 的跨平台视频播放器简明教程(一):FFMPEG + Conan 环境集成
  2. 基于 FFmpeg 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)
  3. 基于 FFmpeg 的跨平台视频播放器简明教程(三):视频解码
  4. 基于 FFmpeg 的跨平台视频播放器简明教程(四):像素格式与格式转换
  5. 基于 FFmpeg 的跨平台视频播放器简明教程(五):使用 SDL 播放视频
  6. 基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频
  7. 基于 FFmpeg 的跨平台视频播放器简明教程(七):使用多线程解码视频和音频
  8. 基于 FFmpeg 的跨平台视频播放器简明教程(八):音画同步
  9. 基于 FFmpeg 的跨平台视频播放器简明教程(九):Seek 策略
  10. 基于 FFmpeg 的跨平台视频播放器简明教程(十):在 Android 运行 FFmpeg


前言

FFmpeg是一个极为著名的开源框架,几乎是所有从事音视频领域的人必备的工具,可以说没有比它更重要的了。然而,在网络上关于FFmpeg的教程中,我发现对于新手来说,这些教程或多或少都不太友好,存在以下问题:

  1. 过于偏向API讲解:这些教程主要关注FFmpeg的API使用,而对于新手来说,这部分知识可能过于超前,难以理解。

  2. API接口过时:当前FFmpeg已经发布了6.0版本,但很多教程仍然在使用3.x版本的API,其中许多接口已经被弃用。然而,教程中的示例代码并未进行更新,给新手带来了困惑。

  3. 学习曲线陡峭:FFmpeg是一个复杂的框架,但它的编解码逻辑相对简单。对于新手而言,只需要掌握一些基础知识就能够大致了解FFmpeg的编解码流程。然而,很多教程未能很好地呈现这些基础知识,给新手带来了困难。

  4. 缺乏完整示例:一些教程只提供了代码片段,而对于新手来说,如何运行这些代码片段却是一个巨大的挑战。

鉴于上述原因,我希望开设一个教程来记录我学习FFmpeg的过程,并与大家分享。这个教程将具有以下特点:

  1. 使用FFmpeg作为编解码工具,实现一个跨平台的视频播放器,可以在Mac、Android、iOS等平台上运行。

  2. 使用较新的FFmpeg API(4.4版本)。

  3. 提供完整的示例代码,你可以在GitHub - ffmpeg_video_player_tutorial上找到这些代码。同时,我们会充分进行单元测试,并提供C++接口的实现。

  4. 提供足够入门的编解码知识,使新手能够轻松理解和掌握FFmpeg的基本概念和使用方法。


一、CMake 与 Conan

学习 ffmpeg 的第一课通常是如何编译 ffmpeg 库,以便你能够在你的程序中链接它。但这部分知识涉及到了编译器、makefile等复杂的概念。因此我决定先跳过它,而使用一种更为便捷的方式:cmake + conan

CMake 大名鼎鼎无需多言,相关教程和讨论网上一搜一大把,本人也写过一篇 现代 CMake 简明教程(一)- CMake 基础 入门教程, 此处暂且略过。

conan 是 C/C++ 包管理工具,它可以加快 C/C++ 工程的开发以及持续集成,配合 cmake 简直神器。Conan 的相关教程请参考官方文档:Conan docs

为了使用 CMake 和 Conna 你首先需要安装它们:参考

二、FFMPEG Say Hello

好的,我们进入正题。作为系列教程的开篇,我们的第一个目标是能够成功的集成 ffmpeg。那么如何验证这就事情呢?很简单,我们调用 ffmpeg api 打印 ffmpeg 版本。代码非常简单 turtorial00.cpp

#ifdef __cplusplus
extern "C" {
#endif

#include <libavcodec/codec.h>
#include <libavutil/avutil.h>

#ifdef __cplusplus
}
#endif

#include <iostream>

int main() {
  printf("ffmpeg version:%s\n", av_version_info());
  return 0;
}

为了运行这段代码,你需要按照下面的步骤执行:

  1. 下载代码到你的电脑上,使用 git 命令即可
 git clone https://github.com/jiemojiemo/ffmpeg_video_player_tutorial.git
 cd ffmpeg_video_player_tutorial
 git submodule update --init --recursive
  1. 使用 conan 安装 c/c++ 依赖库。命令为
conan install . --output-folder=build --build=missing --settings=build_type=Debug

build_type=Debug 表示构建 debug 包,方便调试。你当然也可以改成 Release。

  1. 使用 cmake 编译 turtorial00.cpp
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Debug
cmake --build . --target tutorial00 
  1. 运行
cd tutorial00/
./tutorial00

正常应该输出

ffmpeg version:4.4

总结

本文作为系列教程中的第一章节,介绍了如何使用 conan 和 cmake 集成 ffmpeg,并打印 ffmpeg 的版本信息。这部分涉及到关于 cmake、conan 的相关知识,希望大家能够自行掌握。


参考

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于ffmpeg的开源视频播放器是一种可以在各种操作系统上使用的免费软件,它利用ffmpeg库来解码和播放视频文件。ffmpeg是一个强大的多媒体处理工具,可以处理各种视频和音频格式。基于ffmpeg视频播放器可以支持多种视频格式,包括常见的MP4、AVI、MKV等,同时也能够提供高质量的音频和视频播放体验。 这种开源视频播放器的主要优势是其灵活性和可扩展性。开发者可以根据自己的需要对播放器进行定制和扩展,添加新的功能或者改进现有功能。这使得基于ffmpeg视频播放器成为一个非常受欢迎和受欢迎的选择,因为它可以满足用户的不同需求。 除了支持多种视频格式外,基于ffmpeg视频播放器还具有许多其他功能,例如调整音量、播放列表、循环播放、字幕支持、画面调整等。用户可以根据自己的喜好和需求进行设置和调整。 基于ffmpeg视频播放器也具有良好的兼容性和稳定性。由于ffmpeg库经过了广泛的测试和验证,因此可以保证播放器在不同操作系统和设备上的良好运行。 总之,基于ffmpeg的开源视频播放器是一种功能强大,灵活性高,兼容性好的视频播放软件。它为用户提供高质量的视听体验,并且可以根据用户的需求进行定制和扩展。无论是作为普通用户还是开发者,基于ffmpeg视频播放器都是一个出色的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值