Code Monkey home page Code Monkey logo

ffmpeg-avplayer-for-ios-tvos's Introduction

A tiny but powerful av player framework for iOS and Apple TV OS. The SDK can play the most audio and video formats (Includes network audio and video streams), no convert hassles, no VLC and SDL dependent.

AVPlayer framework is written for iOS and Apple TV OS developers who want to add powerful av player to their app using a couple lines of code. Behind the scenes av player relies on the iOS OpenGL ES 2.0 framework and the open source LGPL licensed FFmpeg library.

###Note

  • Now AVPlayer framework is able to play high resolution videos by using hardware accelerator feature embedded in iPhone/iPad even for MKV or AVI in H264, but this feature requires arm64, iOS 8 or later devices.

###Compile Requirements

  • ARC
  • XCode 7.x & iOS SDK 9.x

###Deploy Requirements

  • ARMv7, ARMv7s, ARM64 and x86-64 architectures
  • iOS version: Deploy target iOS 7.0 or later
  • Apple TV OS version: Deploy target 9.0 or later

###Features

  • ARC support.
  • Bitcode support.
  • armv7, armv7s, arm64 and x86-64 support.
  • file, ftp, http, https, rtsp, rtmp and most of FFmpeg protocols support.
  • Hardware decoder support for H264 format. (iOS 8 or later, only available on iOS platform.)
  • Rich options of ffmpeg library support.
  • Disable audio or video stream.
  • Parse audio and video duration, frame size infos.
  • Grab video thumbnails.
  • Real-time bit & frame rate and network buffering progress calculation.
  • Query current playback time info.
  • Playback speed control.
  • Brightness, contrast and saturation control.
  • Background audio, video playback support.
  • Full screen mode support.
  • Aspect ratio option support.
  • System volume control.
  • Play from a specified time position.
  • Play, pause, resume, stop, fast forward, fast backward, seek position actions support.
  • Audio session interruption handler support
  • Delegate support, you can get notification when state, playback progress, buffering progress changed and enter/exit full screen mode.
  • Save, Restore playback progress support (block style).
  • Multiple audio, subtitle streams support.
  • SRT, ASS, SSA, SMI external subtitle formats support.
  • Embedded subtitle formats support.
  • Custom subtitle font, text color.

###Dolby License

DO NOT use dolby tech in your iOS app unless you have a dolby license. Dolby Digital(AC3), Dolby Digital Plus(E-AC3) and Dolby TrueHD(MLP).

###DEMO Screeshots

###Contact us

ffmpeg-avplayer-for-ios-tvos's People

Contributors

imoreapps avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ffmpeg-avplayer-for-ios-tvos's Issues

RTSP strange behaviour

Hi,

I'm trying to run the following link: rtsp://177.129.4.62:556 using RTSP, but for some reason after it loads a message saying "Demo Version" is shown.
Can you please tell me what I should do to remove it?

Best regards,
Renan.
simulator screen shot 15 may 2017 09 26 53

Unable the play rtsp url in player

Hi,

We are unable to Play our RSTP (Live Streaming) URL in the player.
Our URL is like :- rtsp://x.y.z.a:1111/stream2

Any Help will be appreciated

tvOSAVPlayerTouch, file was built for x86_64 which is not the architecture being linked (arm64)

ld: warning: ignoring file /Users/matteogobbi/Downloads/ffmpeg-avplayer-for-ios-tvos-master/tvOS/appletvsimulator/tvOSAVPlayerTouch.framework/tvOSAVPlayerTouch, file was built for x86_64 which is not the architecture being linked (arm64): /Users/matteogobbi/Downloads/ffmpeg-avplayer-for-ios-tvos-master/tvOS/appletvsimulator/tvOSAVPlayerTouch.framework/tvOSAVPlayerTouch
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_AVPLicense", referenced from:
      objc-class-ref in AppDelegate.o
  "_AVOptionNameAVFormatName", referenced from:
      -[PlayerViewController viewDidLoad] in PlayerViewController.o
  "_OBJC_CLASS_$_FFAVPlayerController", referenced from:
      objc-class-ref in PlayerViewController.o
  "_AVOptionNameAVAnalyzeduration", referenced from:
      -[PlayerViewController viewDidLoad] in PlayerViewController.o
  "_AVOptionNameHttpUserAgent", referenced from:
      -[PlayerViewController viewDidLoad] in PlayerViewController.o
  "_AVOptionNameAVProbeSize", referenced from:
      -[PlayerViewController viewDidLoad] in PlayerViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

actionscript metadata extraction

Hi,

We're a team interested in using ffmpeg-avplayer-for-ios as the viewing client for our app. We'll be using the RTMP iOS player.

A requirement we need is the ability to extract timed metadata that is sent on the publisher side. I didn't see anything obvious when scanning through, is that supported for your RTMP player?

Thanks

Static linking is not allowed in LGPL

877a901c-e262-4fb1-a5be-4b3d2512c331
This means this "Paid Framework" and any code using it violates various licenses.
Use with caution, you have been warned

Close the issue as you like, but no company will buy this shit risking a lawsuit

79a67174-e6af-491a-a3c9-440c2bd20355
Also , I'm selling LLVM obfuscator : ) /s

Typical Chinese Developer

Is where any way to get current frame as CVPixelBufferRef

Hello, i have library for playing 360 degree video, using standard AVPlayer and AVPlayerItemVideoOutput, and have code like this:

- (CVPixelBufferRef)getCurrentFramePicture
{
    CMTime currentTime = [self.videoOutput itemTimeForHostTime:CACurrentMediaTime()];
    [self.delegate progressTimeChanged:currentTime];
    if (![self.videoOutput hasNewPixelBufferForItemTime:currentTime]) {
        return 0;
    }
    CVPixelBufferRef buffer = [self.videoOutput copyPixelBufferForItemTime:currentTime itemTimeForDisplay:NULL];

    return buffer;
}

but standard AVPlayer can not play some formats of videos :( I want to try this library, but cant see way to get frame for my texture. Is any? Thank you.

Link error for ARMv7 architectures

I build the app with tvOSAVPlayerTouch.framework on iPad mini and will get the error as below.

: "_AVOptionNameHttpHeader", referenced from:
: -[MediaViewController viewDidAppear:] in MediaViewController.o
: -[MediaViewController auth:finishedRefreshWithFetcher:error:] in MediaViewController.o
: "OBJC_CLASS$_NativeAVPlayerController", referenced from:
: Objc-class-ref in MediaViewController.o
: "OBJC_CLASS$_FFAVPlayerController", referenced from:
: Objc-class-ref in MediaViewController.o
: "OBJC_CLASS$_AVPLicense", referenced from:
: Objc-class-ref in AppDelegate.o
: Symbol(s) not found for architecture armv7
: Linker command failed with exit code 1 (use -v to see invocation)

Support for tvOS? not working

The sample project works perfectly for iOS. but on tvOS, I don't get past to this error
Error Domain=com.imoreapps.avplayer.errordomain Code=-1499 "(null)" ffmpeg

This error message doesn't tell much. Am i missing something?

Thanks

Demo license

Is the demo license expired ? Not streaming in my development app.

DEMO VERSION? License needed?

Can someone tell me how to get the text "DEMO VERSION" gone from the video?
In other issue someone talks about AVPLicense register but can't find anything where i can purchase.
Thanks.

Is there a way to save the a trim from a remote video using this player?

I have been looking into cutting MPEG-TS file via ffmpegwrapper and my C is incredibly rusty also the FFmpeg documentation is very hard to understand. I was wondering if there is a straightforward way to save a section of a remote video using this library? If the library doesnt support it out of the box, do you have any pointers on how I can piggy back of off this and implement it?

Seeking not smooth

Use mp4 or mov files e,g from iTunes movies store.
Use seeking in iOS photos app and file hup 3.4
iOS photos app seeking is really smooth. Frame by frame!!

UDP Packet Support

Currently, the internet protocol supported by ffmpeg-avplayer-for-ios is "tcp". How can we add support for udp?

If there is an option for Udp packet support, kindly suggest.

I have tried to run it but sometimes get this error:

Connection to tcp://52.28.8.222:8554?timeout=0 failed: Operation timed out

Here it mentions 'tcp'.

Not running in xcode 7.3

Hi,

I am trying to run this library in xcode 7.3 but it gives me error.

Undefined symbols for architecture x86_64:
  "_clock_gettime", referenced from:
      _av_gettime_relative in libavutil.a(time.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Please help me.

Thanks,
Ekta

Failed to load video!

我点击查看任何视频都是Failed to load video!自己把视频链接换了也不行,请问是什么原因。

Can't change audio in hls stream

When I click on the audio button, it locks up.
This happens when I am playing a hls stream wich has several (2) audio channels and 2 subtitles.

HD 1080p Streaming

Hi,

We're a team interested in using ffmpeg-avplayer-for-ios as the viewing client for our app. We'll be using the RTMP iOS player.

A requirement we need is the ability to stream 1080p resolution. Up to 720p resolution's streaming is running perfectly. But 1080p sucks the video. Is there any way to run 1080p.
We are testing on iPad Pro.

Thanks in advance.

License question.

Forgive me if this is mentioned elsewhere, but I did not see any mention of it in the README. In the AppDelegate I notice this line:

[AVPLicense register:@"Phx7B6TjRVQHo7j8IiEWVHz7viL0t0WvVlZHv53Zw+lQlpM2czk2pHCUzXa0CnRlF80ozlggFNW/3Fh1JZR7h0b+g5MHn6jsx6t9dAbYlS8P4QRia7KpwGRddKTiFEx9abQakrk+8FXa4oRaoboG689pf288iWa6kBGsq/W72gIUXaHqkLAbZ4ljFaeGyWBhc9jV3l46D97vrqT6CG7Lxg=="];

Can you elaborate on what this is? The library does not appear to function without it. I would like to use the AVPlayerTouch.framework and build a video player UI around it for tvOS. However if the licensing around this framework is subject to change or one day this key may just stop working, I probably won't bother.

error

ld: warning: ignoring file /Users/Sebastian/Downloads/ffmpeg-avplayer-for-ios-master/libs/AVPlayerTouch.framework/AVPlayerTouch, file was built for unsupported file format ( 0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x68 0x74 0x74 0x70 0x73 0x3A 0x2F 0x2F ) which is not the architecture being linked (arm64): /Users/Sebastian/Downloads/ffmpeg-avplayer-for-ios-master/libs/AVPlayerTouch.framework/AVPlayerTouch
Undefined symbols for architecture arm64:
"_AVOptionNameAVProbeSize", referenced from:
-[PlayerViewController viewDidLoad] in PlayerViewController.o
"_AVOptionNameAVAnalyzeduration", referenced from:
-[PlayerViewController viewDidLoad] in PlayerViewController.o
"_AVOptionNameHttpUserAgent", referenced from:
-[PlayerViewController viewDidLoad] in PlayerViewController.o
"OBJC_CLASS$_FFAVPlayerController", referenced from:
objc-class-ref in MovieInfosViewController.o
objc-class-ref in PlayerViewController.o
"_AVOptionNameAVFormatName", referenced from:
-[PlayerViewController viewDidLoad] in PlayerViewController.o
"OBJC_CLASS$_AVPLicense", referenced from:
objc-class-ref in AppDelegate.o
"OBJC_CLASS$_FFAVParser", referenced from:
objc-class-ref in MovieInfosViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Cannot get thumbnail using openMedia (open is no longer available)

I used to get a thumbnail using this code:
let mp: FFAVParser = FFAVParser()
if mp.open(fileName) {
thumbnail = mp.thumbnail(atTime: Double(fminf(20, Float(mp.duration)) / 2.0))
mp = nil
}

Now I tried this but openMedia comes back false, so thumbnail is nil (never assigned to)
let mp: FFAVParser = FFAVParser()
if (mp.openMedia(URL(string:fileName)!, withOptions: nil)) {
thumbnail = mp.thumbnail(atTime: Double(fminf(20, Float(mp.duration)) / 2.0))
}

what am I doing wrong?

is there any interface get the video size?

the api in the framework only supports set videoAspectRatio for the video;

but there are too many different size of videos, so can we obtain the video origin size by the frameworks.

Capture video to mp4

Does the play support to capture video from stream (HLS) to MP4 on local device

Getting error while installing your Project inside mine.

Hi,
I am using your library since ago. After update i got below error:

ld: cannot link directly with /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/lib/system/libdyld.dylib. Link against the umbrella framework 'System.framework' instead. for architecture x86_64

Improve Seeking

The seeking doesn't work sometimes, especially in the first and last 10 seconds of the video.

It would be okay if the seeking takes a little bit more time but at least seeks to the specified time.

Would be great if you could fix this. Thank you!

Can't load video

I just copy a mp4 video to Documents directory and open, but i get the alert "Failed to load video!",
The video's thumbnail was loaded ok.

Ability to move subtitle view

It would be great to have access to the subtitle view, in order to move it, e.g. when the video controls appears so that the controls don't block the subtitle view.

Mac OS Support

It would be great if this framework could support Mac OS in addition to iOS and TV OS. Any plan to implement that?

License?

I don't see a license anywhere; what is the license?

Since the frameworks are probably the things that actually interface with FFmpeg, where are the sources for those?

This videoplayer can't play rtsp well.

I used this videoplayer to play two rtsp streams, but one is "rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp", and it goes well; the other is "rtsp://m2.0427.com:554/pjxwzhtv", and it doesn't go well. When I run it, it shows me some information, following:
[rtsp @ 0x137867600] method SETUP failed: 454 Session Not Found
2015-11-19 10:33:03.650 AVPlayerDemo[367:86595] SETUP OPENGL SUCCESSFULLY!!!
[rtsp @ 0x137867600] method SETUP failed: 454 Session Not Found
[rtsp @ 0x137867600] method SETUP failed: 454 Session Not Found.
I don't know what's wrong with it. Can anybody help me?

Getting decoding error

Hi Guys,

I'm using this lib for streaming video through rtsp. But then I getting this error:

[h264 @ 0x18a68000] error while decoding MB 13 12
[h264 @ 0x18a68000] P sub_mb_type 5 out of range at 1 14
[h264 @ 0x18a68000] error while decoding MB 1 14`

Could you guys help me find what was the cause?

Thanks

.m3u8 support?

Use this SDK because it support .rtmp,but also want to support .m3u8,it isn't support?

Cocoapods and License

Hello,

Thanks for great project. It's really interesting, and I want to say thanks to you for providing it.

I just want to ask few questions:

  1. What does [AVPLicense register:] stands for? Is it "dolby license"? Also "register" is keyword for xcode, so method with such name better be renamed.
  2. What is the License of whole project? I hope it is kind of MIT.
  3. Cocoapods. Don't you want to make cocoapods library from your project? It is very simple and very convenient. https://guides.cocoapods.org/contributing/contribute-to-cocoapods.html

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.