Giter VIP home page Giter VIP logo

ffmpeg's Introduction

FFmpeg

FFmpeg study and Audio/Video Player base on FFmpeg + OpenSL ES + OpenGL ES + GLSurfaceView + MediaCodec.

此项目是在学习 CSDN 学院杨万理的音视频课程基础上,加上自己的理解、查阅相关专业理论资料和一步步软件构思设计调试而成的,在此记录学习成果,也同时感谢杨老师的知识传播!

ffmpegapi 模块

实现音视频解码播放的核心功能库,Java 层提供的主要接口类有:WePlayer、WeVideoView、WeEditor。

WePlayer

  • 参考 MediaPlayer 生命周期基本实现了同系列播放接口;
  • 音频采用 FFmpeg 软解得到 PCM 数据、OpenSL ES 播放 PCM 数据;
  • 视频采用 FFmpeg 解封装、FFmpeg 软解码得到 YUV 数据 或 MediaCodec 硬解码 AVPacket 数据、OpenGL ES 和 GLSurfaceView 渲染纹理;
  • 支持播放时声道(左声道、右声道、立体声道)、音量控制;
  • 支持播放时声音分贝数的获取;
  • 支持声音播放时变调或变速,原理是采用第三方库 SoundTouch 实现;
  • 支持边播放边录制声音功能,录制音频可保存为 AAC、WAV 格式;
  • 支持 http/https、HLS/RTMP/RTSP 播放;
  • 支持 'armeabi','armeabi-v7a','arm64-v8a', 'x86','x86_64' 主流 ABI;

WeVideoView

  • 用于播放视频的 View,封装了 WePlayer;
  • 原理是采用 OpenGL ES 和 GLSurfaceView 渲染 WePlayer 解码的视频图像纹理;

WeEditor

  • 用于编辑音视频;
  • 目前实现了音频的异步裁减功能,可保存为 AAC 或 WAV 格式;

app 模块

  • 用于测试验证 ffmpegapi 提供的各个功能接口的 Demo;
  • 效果图如下:
    • 测试目录
    • 音频播放
    • 音频编辑
    • 视频播放

liveplay 模块

  • 基于 ffmpegapi 模块实现的广播电台和电视直播小应用;
  • 效果图如下:
    • 广播电台列表
    • 电视直播列表
    • 广播电台播放-竖屏
    • 广播电台播放-横屏
    • 广播电台播放服务通知
    • 电视直播-1
    • 电视直播-2

ffmpeg's People

Contributors

wtz2017 avatar

Stargazers

linversion avatar xiangxudong avatar caipeng avatar meishan avatar  avatar  avatar Mouaad Abdelghafour AIT ALI avatar alex avatar  avatar

Watchers

 avatar

Forkers

alexliyu7352

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.