What audio format should I use for Dictaphone iOS app? - ios

I want to make a Dictaphone app for iOS and my preferred audio format is DSS, as I want the recorded file to be of small size.
Is the DSS format supported by iOS? If not, what other format can I use for my app?

DSS is not supported by iOS.
The audio technologies in iOS support the following audio formats:
AAC
Apple Lossless (ALAC)
A-law
IMA/ADPCM (IMA4)
Linear PCM
µ-law
DVI/Intel IMA ADPCM
Microsoft GSM 6.10
AES3-2003
For information about each of the audio frameworks, see the corresponding entry in “Media Layer Frameworks.”

Related

Play MKV video using videojs on ios

I have integrated videojs in my website and there are mostly Mkv files to play in videojs. Now the concern is that iPhone is not playing Mkv videos and showing messages like "format not supported". If anyone has an idea regarding this issue or any alternative, please let me know.
HTML5 video has to be a format supported by the browser natively, or via media source extensions. MKV is not supported by iOS nor widely supported on desktop browsers - even if some play, others will not.
If you need a single video format, MP4/h.264/aac is the most widely supported format, but consider HLS for adaptive streaming.

How to play .mpeg and .x-wav format audio files in AVPlayer or any other supported controller

I am having an audio URL link which I have to download in to a local filePath and play in my app.That audio URL is http://ci.thrymr.net:8082/file/get?fileid=58d0ce23030b28166b322b79 which is a .mpeg format file. Remaining formats like .mp3,.mp4,.m4a,.3gpp are working fine but .mpeg and x-wav audio formats are not playing in AVPlayer in my iOS objective-c Application.
You could look into the following Github project or simply use it licence is MIT
https://github.com/Viblast/ios-player-sdk for playing mpeg file.
Audio Playback and Recording Formats
The audio playback formats supported in iOS are the following:
AAC (AAC-LC)
HE-AAC (v1 and v2)
AC-3 (Dolby Digital) - supported since iOS 9.3
E-AC-3 (Dolby Digital Plus) - supported since iOS 9.3
MP3 (MPEG-1 audio layer 3
AMR (Adaptive Multi-Rate, a format for speech) - not supported since
iOS 4.3
ALAC (Apple Lossless)
iLBC (internet Low Bitrate Codec, another format for speech)
IMA4 (IMA/ADPCM)
linear PCM (uncompressed)
µ-law and a-law
The audio recording formats supported in iOS are the following:
- AAC (on supported devices only)
- ALAC (Apple Lossless)
- iLBC (internet Low Bitrate Codec, for speech)
- IMA4 (IMA/ADPCM)
- linear PCM
- µ-law and a-law

How to play xiph.org audio codecs in iPhone/iOS?

I have music encoded in Vorbis format and also starded encoding some of my albums to the new Opus format. Is there a way I can copy and play them to my iPhone ? xiph.org wiki page states about vorbis support, that in the free software side, it's "work in progress", while it cites a radio stream and a video application that have Vorbis support, but what about audio support ?
To summarize the requirements:
Vorbis support
Opus support
some way to copy or make the album available
free software would be a plus, since proprietary software could be slow to adopt Opus and I could even add support for additional codecs myself by writing patches
[Edit: essential media player features required]
Playlist support, etc.
Flawless playback must be a strong guideline (for example, some players have audio decoding glitches every 5 minutes played)
http://wiki.xiph.org/Vorbis_Software_Players#iPhone
Capriccio music player for IOS supports FLAC, APE, WV, MPC, WAV, M4A, MP3, OGG, AIFF, CAF, MID, OPUS
I've used it on all my IOS devices (including iPad 2/3/Air and iPhone 4 & 6) with FLAC encoded music and never experienced audio glitches.
Open source licensing on iOS is a difficult matter. VLC for iOS plays Opus and Vorbis. But as a music player it's quite useless.
Since iOS 11 it supports native Opus streams, however you still need to encapsulate them in CAF format. For apps (and even in Safari) you might try to pass that CAF stuff with the audio/aac mimetype and should work.
Try with the afconvert available in macOS with something like this:
afconvert input.wav -f caff -d opus -b 32000 output.caf
There is a test site to try CAF in your Safari browser.
Source: https://hetzel.net/2017-06-12/ios-11-opus-support-in-podcast-feeds/

data reference (dref) atom support in iOS

quiktime file format has suport for dref atom. Where actual video data can reside in separate file on webserver.
to test the feature I created a file with dref atom. http://vihosting.net/sample_iTunes_reference.mov
This file plays nicely on quicktime player, but iPhone/iPad gives error, i am not sure if this is issue with generated file or device support.
If iOS (iphone,ipad) suports dref atom.
If not is there any official document from apple which stats this explicitly.
AVFoundation (media framework used in iPhone/iPad) supports limited number of video codecs. The sample file you provided is encoded with a rare codec 3ivx D4 4.5.1 (some applications even cannot recognise it), which is not supported in iOS.
Encode video using either h264 or mpeg4 codecs and use .mov or m4v container for iOS.

Flash/AIR Stage Video on iOS - Is It Possible? How is the performance?

Does any of you can point me to some resource about video performance of AIR (3.2) on iOS devices.
I am interested into:
is StageVideo available
is video streaming allowed/enabled
is the performance ok with high definition videos?
is .flv playback allowed? (how about on android: flash is there already)
Only H264 has hardware decoding on iOS.
This means comparable video performance with native player only for H264
and slugish (at best) decoding for Sorenson and VP6 (even with low resolutions).
"AIR 3 for iOS uses the StageVideo object for H.264 video with hardware decoding, with limited supported for NetStream functionality. AIR 3 for iOS also supports On2 and Sorenson codecs through the StageVideo object. This support does not use hardware decoding, and it does not limit NetStream functionality."
flash.media.StageVideo
FLV and MP4 are encapsulation formats.
FLV can contain VP6+MP3 or H264+AAC (or any of them taken alone).
MP4 can contain H264+AAC.
The docs don't say anything about FLV not beeing supported on iOS.
However, on iOS, if FLV/H264 won't play, you won't be able to remux it to MP4 on the fly because of the following restriction (otherwise you would lose hardware decoding):
"Note: This method is not supported for H.264 video in AIR 3.0 for iOS."
flash.net.NetStream::appendBytes()
Nothing is said about Sorenson or VP6 not beeing suported for on the fly remuxing (thus they should be).
You shouldn't need appendBytes anyways, unless you plan on doing some very advanced stuff, like switching bitrates on the fly without any interruption during play.
Live streaming requires something similar of what appendBytes does. Since H264 hardware decoding is required and does not have a software mode, you won't get H264 for live streams.
"It turns out that real-time streaming of an H264 video does not render on iOS devices in Adobe Air. Other video codecs will work (H263), but not for H264. You'll consume the feed, but will only hear audio. I confirmed this after talking with members of the Adobe Air development team."
From Adobe Forums
How well H264 decoding performs on different Apple ARM CPUs really depends a lot on video encode settings (B-frames or keyframes, bitrates, etc.) and wether you have dynamic content, static content, fast switching scenes, resolution, color palletes, etc.
Conclusion:
Use FLV or MP4 (whichever suits you best), with H264+AAC inside.
Experiment with encode settings, or lots of videos of which you are targeting (if any).
Determine which is the lowest (oldest) iOS device you want to target, and test on that.
I don't know how the performance stacks up, but the Actionscript docs for NetStream have some information about using NetStream/Video to play video on AIR on iOS devices:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#play%28%29
StageVideo is supported for H.264 video on iOS with AIR 3:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageVideo.html
The takeaway is that StageVideo and limited streaming capabilities are supported on iOS devices as long as your video uses the streaming formats that iOS requires.

Resources