All Projects → DeviLeo → Dlgplayer

DeviLeo / Dlgplayer

Licence: lgpl-3.0
A media player for iOS based on FFmpeg 4.0

Projects that are alternatives of or similar to Dlgplayer

Janus Webrtc Gateway Docker
Perfect Docker Image for Media Streaming Expert User ( https://github.com/meetecho/janus-gateway )
Stars: ✭ 582 (+293.24%)
Mutual labels:  ffmpeg, media-player
Playerdemo
一个视频播放器,开源版 potplayer ,用于总结播放器开发技术。
Stars: ✭ 491 (+231.76%)
Mutual labels:  ffmpeg, media-player
Mpc Hc
MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
Stars: ✭ 3,567 (+2310.14%)
Mutual labels:  ffmpeg, media-player
Mpv.net
🎞 mpv.net is a modern media player for Windows that works just like mpv.
Stars: ✭ 737 (+397.97%)
Mutual labels:  ffmpeg, media-player
Kotlinffmpeg
Examples of using FFMpeg library on Android with Kotlin
Stars: ✭ 138 (-6.76%)
Mutual labels:  ffmpeg
Spacextract
Extraction and analysis of telemetry from rocket launch webcasts (from SpaceX and RocketLab)
Stars: ✭ 131 (-11.49%)
Mutual labels:  ffmpeg
Audiobookconverter
Improved AudioBookConverter based on freeipodsoftware release (mp3 to m4b converter)
Stars: ✭ 131 (-11.49%)
Mutual labels:  ffmpeg
Tiktokbot
A TikTokBot that downloads trending tiktok videos and compiles them using FFmpeg
Stars: ✭ 126 (-14.86%)
Mutual labels:  ffmpeg
Jtt1078 Video Server
基于JT/T 1078标准实现的视频转播服务器
Stars: ✭ 146 (-1.35%)
Mutual labels:  ffmpeg
Media Embed
A PHP library to deal with all those media services around, parsing their URLs and displaying their audios/videos.
Stars: ✭ 143 (-3.38%)
Mutual labels:  media-player
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+1283.78%)
Mutual labels:  ffmpeg
Avtranscoder
C++ API for LibAV / FFMpeg
Stars: ✭ 130 (-12.16%)
Mutual labels:  ffmpeg
Prism Media
Easily transcode media using Node.js 🎶
Stars: ✭ 136 (-8.11%)
Mutual labels:  ffmpeg
Video Srt Windows
这是一个可以识别视频语音自动生成字幕SRT文件的开源 Windows-GUI 软件工具。
Stars: ✭ 2,497 (+1587.16%)
Mutual labels:  ffmpeg
Epmedia
Android上基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,变速,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频。 The video processing framework based on FFmpeg developed on Android is simple, easy to use, and small in size, helping users quickly realize video processing functions. Contains the following functions: editing, cropping, rotating, mir…
Stars: ✭ 1,953 (+1219.59%)
Mutual labels:  ffmpeg
Fawcourse ffmpeg
ffmpeg教程,非命令行模式
Stars: ✭ 130 (-12.16%)
Mutual labels:  ffmpeg
Swiftvideo
Swift Video Framework for Linux, macOS, and iOS/iPadOS
Stars: ✭ 137 (-7.43%)
Mutual labels:  ffmpeg
Soluble Mediatools
Video / audio conversion, thumbnailing and more ! PHP FFmpeg wrapper
Stars: ✭ 141 (-4.73%)
Mutual labels:  ffmpeg
Radigo
Record radiko 📻
Stars: ✭ 135 (-8.78%)
Mutual labels:  ffmpeg
Screen Recorder
A Ruby gem to video record and take screenshots of your desktop or specific application window. Works on Windows, Linux, and macOS.
Stars: ✭ 135 (-8.78%)
Mutual labels:  ffmpeg

DLGPlayer

A media player for iOS based on FFmpeg 4.0.
DLGPlayer uses kolyvan/kxmovie as reference when written and NO deprecated functions and methods are used.
If you found any deprecated function or method, please submit an issue to me.
Great thanks for Konstantin Boukreev's kxmovie.

0. Screenshots

Orientation Audio Video
Portrait
Landscape

1. Build FFmpeg for iOS

(0) Support https (Optional)

If you want to build FFmpeg with OpenSSL to support https, please see How to build FFmpeg with OpenSSL first, or continue.

(1) Download FFmpeg source from FFmpeg official site.

Download and unzip ffmpeg-4.0.tar.bz2  

(2) Use kewlbear/FFmpeg-iOS-build-script to build FFmpeg for iOS

Follow the steps in the README.md of kewlbear/FFmpeg-iOS-build-script to build FFmpeg for iOS.
You need to edit build-ffmpeg.sh since the default version may not be 4.0.

##### Change Begin #####
FF_VERSION="4.0"
#####  Change End  #####

You need to edit audio_convert_neon.S if you are about to compile FFmpeg 4.0 (armv7/armv7s).
Open the file "ffmpeg-4.0/libswresample/arm/audio_convert_neon.S".

Delete _swri_oldapi_conv_flt_to_s16_neon: and _swri_oldapi_conv_fltp_to_s16_2ch_neon:.
Change _swri_oldapi_conv_flt_to_s16_neon to X(swri_oldapi_conv_flt_to_s16_neon) and _swri_oldapi_conv_fltp_to_s16_2ch_neon to X(swri_oldapi_conv_fltp_to_s16_2ch_neon).

...

function swri_oldapi_conv_flt_to_s16_neon, export=1
// >> Delete Begin
// _swri_oldapi_conv_flt_to_s16_neon:
// << Delete End
        subs            r2,  r2,  #8
        vld1.32         {q0},     [r1,:128]!
        vcvt.s32.f32    q8,  q0,  #31

...

function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
// >> Delete Begin
// _swri_oldapi_conv_fltp_to_s16_2ch_neon:
// << Delete End
        ldm             r1,  {r1, r3}
        subs            r2,  r2,  #8
        vld1.32         {q0},     [r1,:128]!

...

function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
        cmp             r3,  #2
        itt             lt
        ldrlt           r1,  [r1]
// >> Change Begin
//        blt             _swri_oldapi_conv_flt_to_s16_neon
//        beq             _swri_oldapi_conv_fltp_to_s16_2ch_neon
        blt             X(swri_oldapi_conv_flt_to_s16_neon)
        beq             X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
// << Change End

        push            {r4-r8, lr}
        cmp             r3,  #4
        lsl             r12, r3,  #1
        blt             4f

...

(3) Put built FFmpeg include files and libraries into DLGPlayer/Externals/ffmpeg folder.

Put built "ffmpeg/include" and "ffmpeg/lib" folders into example project's "DLGPlayer/Externals/ffmpeg" folder.

2. Run demo

Build project and run demo on your device or simulator.

3. Play media

(1) Put any media files such as mp4 or mp3 into your server's folder.

Make sure those media files can be access by url (such as http://192.168.31.120/media.mp4) from browser.
Then input "http://192.168.31.120/media.mp4" into the text box on the top of the main view and go!

(2) Transfer any media files using file management.

Select "Local Files" in the main view.
Transfer the media files according to the tips on the top of the file management view.
Select any one media file listed in the table and enjoy it!

4. Usage

(1) Use DLGPlayerViewController to play a media file with HUD.

    DLGPlayerViewController *vc = [[DLGPlayerViewController alloc] init];
    vc.autoplay = YES;
    vc.repeat = YES;
    vc.preventFromScreenLock = YES;
    vc.restorePlayAfterAppEnterForeground = YES;
    vc.view.frame = self.view.frame;
    [self.view addSubview:vc.view];
    vc.url = @"http://192.168.31.120/media.mp4";
    [vc open];

(2) Use DLGPlayer to play a media file without HUD.

    DLGPlayer *player = [[DLGPlayer alloc] init];
    UIView *v = player.playerView;
    v.frame = self.view.frame;
    [self.view addSubview:v];
    [player open:@"http://192.168.31.120/media.mp4"];
    [player play];

See DLGPlayerViewController class for more usage details.

5. Required frameworks and libraries

  • Accelerate.framework
  • AudioToolbox.framework
  • CoreAudio.framework
  • CoreGraphics.framework
  • CoreMedia.framework
  • MediaPlayer.framework
  • OpenGLES.framework
  • QuartzCore.framework
  • VideoToolbox.framework
  • libiconv.tbd
  • libbz2.tbd
  • libz.tbd

6. References

Thank you all!

7. License

See LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].