`
he91_com
  • 浏览: 400988 次
文章分类
社区版块
存档分类
最新评论

ffmpeg+SDl+ 播放器 -01

 
阅读更多

最近因公司项目需要,打算自己在LINUX平台整一个播放器,来学习和研究音频编解码。


项目需求:

支持下列格式文件播放。

1> WMA

硬件解码,但需要软件分析ASF格式,提取Payload数据


2> FLAC

软件解码


3> DST、DSD

硬件解码,但需要软件分析文件格式,提取Packet数据


网上搜了一圈,对于1) 2)最适合的是ffmpeg

对于3) 目前网上只找到foobar的插件版本。


最终,LINUX下的播放器打算采用 ffmepg + SDL

整体框架设计如下:

interface (封装SDL,自己写一个简单的HMI)

|

MediaEngine

| | |

Input Decoder Output


其中input 参考 vlc的设计,支持本地文件系统,USB,网络(DLNA或Web Uri)

Decoder 支持 JPG、PNG,WAV,FLAC,WMA,DST,MP3


简单分析好了基本需求和整体框架后,接下来就是下载代码开工。

STEP1:

http://ffmpeg.gusari.org/static/32bit/ 目前选择ffmpeg-0.9.2.tar

http://www.libsdl.org/ 目前选择SDL-1.2.15.tar

./configure;make;make install


STEP2:

编写Makefile

LIBS+= -lpthread -lavformat -lavcodec -lavutil -lswscale -lm -lSDL -lrt (注意先后顺序不能随便更改,这地方被坑了好一会儿)

INCLUDE+= -I/usr/local/include/libavcodec -I/usr/local/include/libavformat -I/usr/local/include/libavfilter -I/usr/local/include/libavformat -I/usr/local/include/libswscale -I/usr/local/include/SDL


STEP3:

学习ffmpeg+Sdl

http://dranger.com/ffmpeg/ 注意由于版本差异,无法编译通过,修改函数很麻烦,只需要了解其设计思路就可以了。


STEP4:

参考ffplay.c 写解码库。


分享到:
评论

相关推荐

    Qt+FFMPEG+SDL实现的视频播放器

    **Qt+FFMPEG+SDL实现的视频播放器** 在软件开发中,创建一个功能完备的视频播放器是一项挑战,但结合Qt、FFmpeg和SDL(Simple DirectMedia Layer)库,我们可以构建出一个高效且跨平台的解决方案。下面将详细阐述这...

    qt基于FFmPeg+SDL2.0+QOpenGLWidget实现的视频播放器

    qt使用FFmPeg+SDL2.0+QOpenGLWidget实现的视频播放器,FFmPeg+SDL2.0解码音视频,视频图像解码为YUV420的格式,然后使用QOpenGLWidget进行显示。亲测在windows和Linux下都可使用,附带FFmPeg+SDL2.0第三方库

    雷神FFmpeg + SDL 的视频播放器修正版.rar

    雷神(雷霄桦)在FFmpeg + SDL 的视频播放器的代码中清晰地展示了作为一个播放器代码的思路。非常适合初学者学习借鉴。 雷神在“广播电视工程大二的暑假小学期的课程设计”中,课程内容为《基于 FFmpeg + SDL 的视频...

    最简单的基于FFMPEG+SDL的视频播放器(2014.5.6)

    FFMPEG工程浩大,可以参考的书籍又不是很多,...但是几乎包含了使用FFMPEG播放一个视频所有必备的API,并且使用SDL显示解码出来的视频。十分适合新手学习FFmpeg。 使用了2014.5.6编译的类库,支持最新的HEVC以及VP9.

    基于Qt+FFmpeg+SDL音视频播放器源码+全部资料齐全(高质量项目)

    基于Qt+FFmpeg+SDL音视频播放器源码+全部资料齐全(高质量项目),含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以...

    基于FFmpeg+SDL的视频播放器_其它文档

    在这个“基于FFmpeg+SDL的视频播放器”项目中,它们被结合起来构建了一个基本的视频播放器应用程序。 首先,让我们深入了解一下FFmpeg。FFmpeg的核心功能包括音视频的编码、解码、转码、流媒体处理和格式转换。它...

    ffmpeg+sdl视频播放器

    在本项目中,"ffmpeg+sdl视频播放器"是基于FFmpeg库和SDL(Simple DirectMedia Layer)库开发的一个轻量级的视频播放器。SDL是一个跨平台的开发库,主要用于处理图形用户界面、音频以及输入设备,使得开发者可以轻松...

    最简单的基于FFMPEG+SDL的视频播放器

    FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。...该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个视频所有必备的API,并且使用SDL显示解码出来的视频。

    ffmpeg+sdl视音频播放器

    ffmpeg+sdl播放器解码视音频,使用ffmpeg-2.5.2+SDL-1.2.15,参考ffmpeg官方例子,欢迎交流 内含10个工程 1.保存为bmp图片 2.解码视频 3.解码视频, 音频 4.分离代码,加入线程(伪同步) 5.视频同步到音频 6.音频同步到...

    基于FFMPEG+SDL2播放音频

    基于FFMPEG+SDL2写的播放mp3文件程序,采用链表队列的方式来传递数据,详细解释见博文《基于FFMPEG+SDL2播放音频》,链接:https://blog.csdn.net/u011003120/article/details/81950045

    基于Qt+FFmpeg+SDL音视频播放器源码+全部资料齐全.zip

    基于Qt+FFmpeg+SDL音视频播放器源码+全部资料齐全.zip基于Qt+FFmpeg+SDL音视频播放器源码+全部资料齐全.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码...

    最简单的基于FFMPEG+SDL的音频播放器

    FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手。...该播放器虽然简单,但是几乎包含了使用FFMPEG播放一个音频所有必备的API,并且使用SDL播放解码出来的音频。

    基于C++ Qt+FFMPEG+SDL2写的视频播放器源代码,可以播放本地视频

    在本文中,我们将深入探讨如何使用C++、Qt、FFmpeg和SDL2库来构建一个本地视频播放器。首先,让我们分别了解这些组件的核心概念。 **Qt** 是一个跨平台的应用程序开发框架,广泛用于创建GUI(图形用户界面)应用...

    FFmpeg+SDL的视频播放器资料

    FFmpeg+SDL的视频播放器资料: (0) 大纲 (1) 视音频基础知识 (2) FFmpeg命令行工具的使用 (3) FFmpeg视频解码器 (4) SDL视频显示 (5) FFmpeg+SDL视频播放器 (6) FFmpeg+SDL视频播放器-图形界面版

    最简单的基于FFMPEG+SDL的视频播放器_FFMPEG解决方法.ra

    将FFmpeg与SDL结合,可以创建出一个简单的视频播放器。下面我们将详细讨论如何利用这两者来构建一个基本的视频播放器。 首先,我们需要理解FFmpeg的核心组件。FFmpeg主要由以下部分组成: 1. **解码器(Decoders)...

    最简单的FFMPEG+SDL播放器

    "最简单的FFMPEG+SDL播放器"项目,就是结合这两个强大的库,构建了一个基础的媒体播放器。对于初学者来说,这个项目具有极高的学习价值。通过阅读和理解代码,你可以了解如何使用FFmpeg进行音频和视频的解码,以及...

    ffmpeg+SDL2实现的视频播放器(windows版)

    本项目结合 FFmpeg 和 SDL2 实现了一个简单的视频播放器,特别针对 Windows 平台进行了优化。 在 Windows 上使用 Visual Studio(VS2010 或 VS2015)进行开发时,首先需要安装 FFmpeg 和 SDL2 的开发库。确保下载的...

    毕业设计基于Qt+FFmpeg+SDL实现的音视频播放器源码.zip

    毕业设计基于Qt+FFmpeg+SDL实现的音视频播放器源码.zip毕业设计基于Qt+FFmpeg+SDL实现的音视频播放器源码.zip毕业设计基于Qt+FFmpeg+SDL实现的音视频播放器源码.zip毕业设计基于Qt+FFmpeg+SDL实现的音视频播放器源码...

    QT + ffmpeg + sdl音频播放器

    QT + ffmpeg + SDL音频播放器是一种利用开源库组合来实现音频播放的应用程序。在这个项目中,QT是一个跨平台的C++应用程序开发框架,用于构建用户界面;ffmpeg是一个强大的多媒体处理库,负责音频和视频的解码;而...

Global site tag (gtag.js) - Google Analytics