How to play .mts file in iOS - ios

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).

Related

VLC fails to play mpeg-2 correctly

My friend has a problem with playing mpeg-2 files correctly with his VLC player.
Audio is playing fluently, but video is fitful. He tried to play same files with Windows Media Player, so he knows that files are OK. Files are stored on SSD disk in his computer that has no problem with data transmition.
Reinstalling VLC and codecs was ineffective.
Any other solution?
The problem was caused by the cache settings inside of VLC.
All it needed was total reinstall (including deleting of all settings).

Live Stream using .m3u8 and .ts files with iPhone as server

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.

iOS Video Player FFmpeg

So I want to make an app for the iPhone that will play live mms:// video streams.
I have look around, and everywhere says that I'll need FFmpeg in order to accomplish it. So I successfully compiled the FFmpeg libraries, but now
Do I have to convert the mms:// link to a .m3u8 link? Or I can just use apples AV Foundation Framework ?
Thanks!
You need libmms as well as the ffmpeg libs ,however as think the latest versions of ffmpeg has the code built in so you may not need libmms mms is just a streaming protocol so the actual format is likely some mpeg variant, mp4, h264.
Once you have that you extract the frames , and use ffmpeg avcodec_decode_video2 to decode to an avFrame. Just like any other video.

List of file extensions for supported MPMoviePlayerController media types

Playing media in the MPMoviePlayerController is a fallback option in my app - generally use a UIWebView. I need a list of typical file extensions for types of media supported by the MPMoviePlayerController - anybody have that?
I do not need a list of supported media types - I need a list of likely file extensions for those types.
Edit
Further clarifying in response to the answer by sch, the Apple documentation merely mentions the following file extensions:
.mov
.mp4
.mpv
.3gp
I would be curious to know, at minimum, if the following can be played by iOS (and therefore is support by MPMoviePlayerController), or any others I may be overlooking:
mp3 (I know this one is supported)
wav
aif
aiff
mid
midi
m4p
mpa
au
wma
ram
rm
ogg

Ruby/Rails Audio Conversion Plugins?

I am looking for a good gem/plugin to convert user-uploaded audio files to different formats. One format in particular that I am interested in is converting to Apple .caf with ima4 compression for inclusion in an iPhone app.
I have been using afconvert on my mac for this so far, but I need to do it on my linux box, server-side. Ideally, I would be able to work into paperclip.
As an additional solution, ffmpeg could work, but I have not seen any .caf options for it. Anybody know of one?
The Sound eXchange project supports lots of audio file conversions. I've used this in the past to convert aiff files output by the OS X "say" program to ulaw files for Asterisk. This yields rather nice text-to-speech. For my purposes, I also found a Ruby extension on github called sox-ruby that wraps the libsox functions directly.

Resources