ffmpeg
文章平均质量分 97
芥末的无奈
这个作者很懒,什么都没留下…
展开
-
基于 FFmpeg 的跨平台视频播放器简明教程(十二):Android SurfaceView 显示图片和播放视频
上一章中我们介绍了一个简易的播放器架构,对之前零碎的代码片段进行了组织和重构,形成了较为灵活的一种架构设计,它非常简单,但足够满足我们的需求。现在,接着我们在 Android 上的旅程。今天我们来讨论如何在 Android 上显示画面。Android 原生的 Java/Kotlin 接口播放视频还是很容易的,有 MediaController、MediaPlayer 等类可以直接使用,相关教程参考Android实现视频播放的3种实现方式。原创 2023-12-22 15:46:47 · 846 阅读 · 0 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(十):在 Android 运行 FFmpeg
在前九章的学习中,我们已经成功地实现了一个基础的播放器,它拥有视频播放、音画同步、快进/快退等基本功能。当然,这个简易的示例还有许多可以优化的地方,比如添加更美观的用户界面,或者增加字幕功能等。然而,这并不是本教程的主要关注点。本系列文章更关注于跨平台播放器框架的构建,特别是在移动端。因此,从本章开始,我们将把重点转向 Android 端播放器的开发。前置知识包括一些 Android 的基本开发,以及 JNI 开发等。这些前置知识默认你有所了解,本文不会涉及。关于 JNI 可以参考笔者之前写的。原创 2023-10-26 21:56:45 · 1197 阅读 · 0 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(九):Seek 策略
经过前面八章的学习与代码实现,我们的播放器已经能够正常播放视频了,接下来我们将加入最常用的 seek 能力,让你能够快进/快退。本文参考文章来自。这个系列对新手较为友好,但 2015 后就不再更新了,以至于文章中的 ffmpeg api 已经被弃用了。幸运的是,有人对该教程的代码进行重写,使用了较新的 api,你可以在找到这些代码。本文的代码在和。本文介绍了播放器中如何实现快进、快退功能,并给出了具体的实现代码,还讨论了如何实现精准 seek 逻辑,并在最后给出了一些优化的思路。本文的代码在和。原创 2023-10-20 10:27:53 · 1448 阅读 · 0 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(八):音画同步
本文介绍了如何实现播放器的音画同步,首先介绍了 I/P/B 帧的区别,引出了 PTS 和 DTS 的概念;接着,介绍了在 FFmpeg 中的 timebase 的概念,让读者了解 FFmpeg 是如何描述时间的;然后,我们详细的描述了音画同步实施的具体要点,包括如何精确的纪录不同流的当前时间,在什么时间节点来更新时钟,以及音画同步的具体算法。原创 2023-08-09 21:23:08 · 1669 阅读 · 1 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频
在上篇文章基于 FFmpeg 的跨平台视频播放器简明教程(五):使用 SDL 播放视频中,我们使用 FFmpeg + SDL 来播放视频画面,但仅仅只是画面。今天,我们将讨论如何使用 FFmpeg + SDL 同时播放画面和声音。本文参考文章来自。这个系列对新手较为友好,但 2015 后就不再更新了,以至于文章中的 ffmpeg api 已经被弃用了。幸运的是,有人对该教程的代码进行重写,使用了较新的 api,你可以在找到这些代码。本文的代码在。原创 2023-07-10 21:21:00 · 1360 阅读 · 0 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(五):使用 SDL 播放视频
经过前面四章的学习,现在我们已经掌握了如何使用 FFmpeg 进行视频解码,中间穿插了很多音视频相关的知识点,例如容器、编解码器、解封装、像素格式、格式转换等等。现在回看,音视频的入门门槛还是比较高的,一个最简单的任务就已经涉及到大量的知识点。但问题不大,本人希望通过一系列的文章来带你入门,通过完成一个播放器项目来不断地学习音视频内容。,用于解封装相关的任务,用于解码相关的任务,用于 AVFrame 格式转换这些类的使用方式,你可以在单元测试中找到示例,此处不再赘述。资源管理。原创 2023-07-04 21:36:31 · 1505 阅读 · 0 评论 -
基于 FFmpeg 的跨平台视频播放器简明教程(三):视频解码
在前面章节基于 FFMPEG 的跨平台视频播放器简明教程(二):基础知识和解封装(demux)中我们引入了视频编解码的基础知识以及解封装的概念。请记住我们的任务:使用 ffmpeg 解码视频,并将解码后的视频帧保存在本地(就像对视频截图一样)。今天,围绕这个任务让我们继续下一个知识点:视频解码。本文参考文章来自。这个系列对新手较为友好,但 2015 后就不再更新了,以至于文章中的 ffmpeg api 已经被弃用了。幸运的是,有人对该教程的代码进行重写,使用了较新的 api,你可以在找到这些代码。原创 2023-06-10 15:35:27 · 2225 阅读 · 0 评论 -
ffmpeg2.8将多媒体文件保存为ppm
基于ffmpeg 2.8 API 的改写//// main.cpp// save_video_to_ppm//// Created by meitu on 15/10/15.// Copyright © 2015年 meitu. All rights reserved.//#ifdef __cplusplusextern "C"{#endif#include "liba原创 2015-10-16 08:56:06 · 599 阅读 · 0 评论