is amf0 still used? Is there any backward compatibility for amf0 in amf3? - amf

Is amf0 still used ?
Is there any backward compatibility for amf0 in amf3?
Which encoding does the current version of Adobe flex use---amf0 or amf3?

amf0 is for as2.
amf3 is for amf3, though you can switch to amf0 if needed.
So amf0 is seldom used
yes, there is backward compatibility
flex uses amf3.

As of 2015, AMF0 is still widely used as the metadata format for FLV files.
While the MPEG-4 Part 14 (or simply MP4) file format has largely superseded FLV for most workflows, it is still used when publishing live video to RTMP servers like Adobe Media Server, Wowza, or nginx-rtmp.
It is therefore used in FLV events that are handled by NetStream instances, like this:
netStream.onMetaData = function(myMeta) {
for (var i in myMeta) {
trace(i + ":\t" + myMeta[i])
}
};

Related

HLS (Http Live Streaming) vs MPEG DASH

I am trying to find the differences between HLS and DASH, the two widely used streaming format.
Through my research, I took a look at the image that demonstrates adaptive streaming feature comparison.
I am uncertain about the HTML5 support.
Is MPEG-DASH the only streaming format that supports HTML5
or the below image is kind of old feature comparison?
Image for adaptive streaming feature comparison
The most important difference is probably that MPEG-DASH is a vendor independent, international standard ratified by ISO/IEC MPEG. Previous adaptive streaming technologies - such as Apple HLS – have been released by vendors with limited support of company-independent streaming servers as well as playback clients.
MPEG-DASH allows native playback with HTML5 as mainly the fMP4 container is used but recently also Apple added support for fMP4 at WWDC16. Nevertheless HLS is mainly used and supported with MPEG2-TS which cannot be natively played back with HTML5. There are solutions which transmux the MPEG2-TS segments in JavaScript into fMP4 and therefore allow native playback. These players include hls.js, which is open source.
DASH has some more advantages if you want to use DRM as MPEG-CENC is nicely integrated with this standard. Other things include more compact manifests through SegmentTemplate (in HLS each and every segment needs to be described an URL) which allows to specify a segment URL generation mechanism. The smaller size of the DASH manifest influences the startup delay. Other things that DASH specifies are how you could do failovers with BaseURLs that allow you host your content on several different locations and much more.
However, HLS is also widely used and it is not so complex and easier to implement. So if you do not need DRM, very high resolutions and bitrates (could have performance impacts when transmuxing in JavaScript) or some other specific DASH features its probably better to use HLS.
For DASH as well as HLS there are several services (e.g., zencoder) which could generate content and also open source solutions such as ffmpeg.

Proprietary codecs on Linux. What is legal?

So, assuming we got a distribution without proprietary codecs installed.
Let's take Linux Mint for example. I want to store and playback wav and ogg format sounds, either by using my own software, or by using another developer's software. So far so good right?
Imagine now that we have the following scenario. For some reason, I wanna playback a file that is either an mp4 or mp3 or mpeg or any other format, made by proprietary codecs. Instantly, I will need a codec for these formats.
I read somewhere that Fluendo sells solutions for "legal codec usage" for linux distros.
URL of fluendo: http://www.fluendo.com/en/
So here comes the questions:
Using VLC and ffmpeg is enough for me to convert a file to an ogg or ogv so I can playback a song or a video using an open format. You can also playback playback files made by proprietary formats. But are VLC and ffmpeg legal to use, to playback such files made by proprietary codecs? For example, ss VLC codecs okay to be used without paying anyone for mp4 playback? Is it okay to convert a file from mp4 to ogv?
If not, are there any legal and open source and free (as in freedom) codecs around that can solve the issue, or does someone have to pay a product, to be ethically correct, to the developers of the proprietaty codecs?
Note that I do not ask for Windows, since codec licenses are included to the price of the operating system. I ask exclusively for a free linux distribution.
Since #LordNeckbeard pointed me to the FAQ of FFmpeg, that I really can't believe I missed, it became clear to me that there is a problem in using proprietary codecs, thus there are some file formats that could be avoided to keep ourselves safe. Otherwise if someone can afford a license to use them too, that would be perfectly fine.
So mp3, mp4, mpeg and some more patented formats are to be avoided, if not licensed.
ffmpeg can be built so it can exclude support for such formats and if you need to use sound or video to your software ogg and ogv are nice and efficient formats as we all know.
Digging a little deeper Ι found that too.
https://www.fsf.org/resources/playogg_radiostation.pdf

How to play single ogv file in IE8 and Safari by HTML5 video?

How to play single ogv file in IE8 and Safari by HTML5 video?
I known IE and Safari don't support Ogg Theora, but I have a requirement for that.
Any suggestion to me?
Thanks
OGV.JS: AN OGG THEORA AND VORBIS VIDEO DECODER IN JAVASCRIPT
Targeting Safari 6+ and ie 10+
http://badassjs.com/post/71980473022/ogv-js-an-ogg-theora-and-vorbis-video-decoder-in
IE8 can't play any HTML5 video, let alone specific formats. It simply doesn't support it (or any other HTML5 elements). The best you can do is embedding a Flash video. IE9 does support HTML5 video, but still not the OGG Theora format.
Safari explicitly doesn't support it either. It does support HTML5 video, but not the OGG Theora format.
So the short answer is it can't be done. Sorry.
If the requirement is for an open source video format, you might try switching to WebM, which is supported by both Safari and IE9 (although both require the relevant video driver to be installed separately to the browser) as well as Chrome and Firefox. (See http://caniuse.com/#search=video)
IE8 simply isn't going to work for you though, no matter what format you use. It simply doesn't know what the HTML5 video tag is, and there's not much you can do about that.
Cortado streaming applet
Cortado is an open-source cross-browser and cross-platform video playback solution based upon Java technology. Leveraging the huge installation base of Java it allows web-authors to deliver Ogg Theora content without having to worry about the media playback setup installed on customers' machines. This enables e.g. Wikipedia to deliver Ogg Theora video content embedded into articles to millions of users. Originally developed at Fluendo, Cortado's latest versions are now maintained by Xiph.org. If you're interested in using free media delivery technology, e.g. to avoid the costs adjunctive to non-free technologies like H.264, and want to reach a big potential user base, Cortado may be the solution you've been looking for.
http://theora.org/cortado/

DivX Decoder libraries?

I saw, in an application from a major software vendor a dll called "DivXDecoder.dll" - which intrigued me as (a) it implies the existence of an easy to use divx library, and (b) I'd rather like to play divx compressed movies in a product I work on.
The DivX project itself seems to concentrate on making Codecs and tools for end users. Are there any C/C++ friendly projects that make playback of divx content in Win32 or Cocoa apps possible?
Look at mplayer sources - it uses the ffmpeg library that handles decoding from a number of formats.
DivX is a compressor that conforms to MPEG-4 Part 2. XviD and some versions of Windows Media are also implementations of the standard. So anything that can decompress MPEG-4 Part 2 should be able to handle things compressed with DivX.
As for actual decompression libraries, I'd recommend libavcodec. It's widely-used (= good support), cross-platform, and open-source (LGPL, so can be used in commercial apps). It's also fairly easy to use from it's C binding. It can open and play many different codecs (and with libavformat, handle many different wrappers i.e. avi, mkv, etc.).
If it's Windows-only, using the OS-provided Video For Windows might be a better option if you just want to play MPEG since you wouldn't need to ship it with your app and you avoid potential license issues. Be warned, though, that this requires the user to have certain codecs installed. On Win7 (and Vista I think) the MPEG codecs required to play DivX/XviD are installed by default, however they're not on XP...
Don't waste your time trying to implement DivX playback in a Cocoa application. Use QTKit. If someone wants to playback DivX content in your app they will install a DivX QuickTime plug-in.

Which video and audio format/codec should I use?

Environment: Windows XP/Vista, VS2008, C#/.NET 2.0, VideoGrabber.
Hi All,
I'm writing an app which captures cameras input and encodes them into a movie file (including sound).
My client suggests I encode the movie using the DivX codec. But it's not installed by default and it's not redistributable: Users would have to download, install and configure it themselves.
Is there a Codec available in default Windows (XP+) installations that I could use to encode video and sound? It must support compression. Ideally, I should be able to programmatically set basic configuration.
Note: I read this question but it doesn't actually address my needs.
TIA,
Is there a Codec available in default Windows (XP+) installations that I could use to encode video and sound?
About the best you can hope for is WMV2 (WMV v8). You may be able to encode it using qasf.dll.
The codecs you get for AVI in XP are all woeful efforts from the early days of ‘Multimedia PCs’: things like Cinepak and RLE, which are of zero use for modern full colour/resolution video, and Intel 4:2:0, which is only chroma subsampling, not really actual video compression.
If you need better than that you'll have to start embedding your own codecs, eg. from ffmpeg.
But it's not installed by default and it's not redistributable: Users would have to download, install and configure it themselves.
That's best anyway. Silently installing codecs onto a system is rather antisocial as there are often clashes between them and you could end up messing up other DirectShow applications. For example there are (at least) three different common DirectShow codecs that can handle “DivX” (which is really nothing more than MPEG-4 Advanced Simple Profile video plus MP3 audio in an AVI container): DivX, Xvid and ffdshow. Having more than one installed can be a recipe for bugs.
Not sure how useful this is to you, but I was trying to answer that very question just recently. This article suggests DIB, I420, or IYUV are supported on all platforms... at least in OpenCV. I had the least trouble with I420.

Resources