I'm working on a streaming project and i have to create player abstraction to play .ts files. sadly i didnt find any info(excluding 10 year old thread) how to make avplayer play .ts extensions. can anyone help me out? what's the best practice to do it correctly?
Currently im working with a wifi-camera device, which is able to send only videos in .mts format.
As i have investigated in google, it leads to conclusion that it is not possible to play the video in iPhone or may be using Objective C.
Now my problem what is,
There is still many paid applications that allows us to play .mts files
PlayerXtreme is able to run files in almost any video format. It has currently the following formats covered:
3gp, asf, avi, divx, dv, dat, flv, gxf, m2p, m2ts, m2v, m4v, mkv, moov, mov, mp4, mpeg, mpeg1, mpeg2, mpeg4, mpg, mpv, mt2s, mts, mxf, ogm, ogv, ps, qt, rm, rmvb, ts, vob, webm, wm, wmv
See the application: iTunes app
Player i m curently trying is AVPlayer lib
How can i start the coding to get this done in my app also?
Currently I'm trying solve by adding some python scripts to my project as a build.. and calling the same for converting to mp4 format.. anyone worked on py-ObjC Together in XCode pls give some idea..
MTS is a container format. You need to know what the video and audio codecs are, and see whether VideoToolbox and AudioToolbox (the underlying frameworks of AVPlayer) support those codecs.
Assuming H264 for video and AAC or AC3 for audio, libavcodec (part of ffmpeg) supports the MTS container. You can use that to demux the video and audio streams, and then use VTDecompressionSession and AudioQueueNewOutput (I think, I haven’t used that API in a while).
I am trying to accomplish a task to live stream from iPhone camera. I have done some research and found that i can use .m3u8 files for streaming live video with should contain .ts(Mpeg-2) files .
Now the file which i have on my iPhone is .mp4 file and it does not work with .m3u8, so i figured out i will have to convert .mp4 to .ts for that , but i have not succeeded in doing so.
I found that it is possible to convert video ffmpeg lib as mentioned in this article here. I have successfully imported ffmpeg library but not able figure out how can i use it to convert a video as i am using this for first time.
One another thing apple documentation says
There are a number of hardware and software encoders that can create
MPEG-2 transport streams carrying MPEG-4 video and AAC audio in real
time.
What is being said here? is there any other way i can use .mp4 files for live streaming without converting them from iOS?
Let me know if i am not clear, i can provide more information .Any suggestion is appreciated. I would like to know am i on a right path here?
EDIT
I am adding more info to my question, so basically what i am asking is , we can convert .mp4 video to .ts using following command
ffmpeg -i file.mp4 -acodec libfaac -vcodec libx264 -an -map 0 -f segment -segment_time 10 -segment_list test.m3u8 -segment_format mpegts -vbsf h264_mp4toannexb -flags -global_header stream%05d.ts
How can i use ffmpeg library to do what this command does in iOS.
You can look at ffmpeg.c to see what the ffmpeg uses from the ffmpeg libraries. It's a pretty complicated file, however. You may want to rename main() and compile it to an object, then you could call the new ffmpeg_main() function from your code.
Apple device work on HLS only and you need to convert the media files from mp4 to ts along with the metadata file as m3u8. You can use the streamers like gstreamer etc to stream you mp4 to HLS format or the other way is to trans-code on fly which is very slow.
Are there any libraries that exist that take in a URL as input, and starts playing the audio of the file?
I've tried AudioStreamer, but I run into ARC problems. I've also tried a couple of other libraries, but they don't seem to allow AAC files (only mp3).
<AVFoundation/AVAudioPlayer.h> and AVPlayer can help you.
AVPlayer the best solution for playing file in queue.
I am downloading a mp3 file from the internet to memory using InternetReadFile. This works great, I can dump the file on disk and then play it, but I want to play the file without dumping it on disk.
Is there a library i can use to achieve this functionality ? Some docs on how to use the library would be useful too.
Thanks in advance.
You can use the BASS Delphi audio library
On the other side, search for "MP3" on the 3D Buzz site. They have a very good series of video tutorials that walk you through the creation of your own MP3 player in Delphi using this library.