I used to use YT video in FLV format (itag 5) and I was able to start at a specific point in time by adding "&begin=xxxx" to the URL.
I had to move to WEBM as FLV seems to be fully deprecated (itag 43) but I can't find a way to start at a given position.
I can't use HLS or DASH.
note: this is not about embedding a YT link in a page like https://www.youtube.com/watch?v=xxxxxx. I know in that case I can use "&start=zzz". Here it's about the link to the file itself on goooglevideo.com sites
Thanks
Just for clarification, I know now this is not possible. You have to crawl through the webm format and then request the right chunk using HTTP offset. Works, but less convenient compare to what it was in the past
Related
Youtube shows some more or less informative things if you rightclick on a video and choose "Stats for Nerds".
Unfortunately, I could't find any documentation for the fields shown.
Depending on your configuration, it might be that it streams using MPEG Dash and it looks similar to the following screenshot. But what does the "(137/140)" stand for?
PS: in case someone is wondering: the "codecs"-string seems to be specified by RFC6381
These are itag values that refer to different video and/or audio formats. The first number corresponds to video and the second to audio. You can actually see these numbers change when you select different resolution from the player's settings.
Many but probably not all of the itags are documented in Wikipedia
Problem:
To get an iOS app that streams video accepted into the app store, we need to have a HLS version.
What’s the problem?
Android does not support HLS well, and for other reasons, we need to store MP4 and HLS files of the same content.
What’s the difference between MP4 and HLS and why do you need to store both?
MP4 is a container that stores H.264 video and AAC audio for best compatibility in HTML 5 browsers – jsvideo players often have flash fallback if the browser does not support MP4 video in HTML 5 that use the same MP4 file, but played through flash.
HLS is a protocol where text files (.m3u8) contain references to playlists, which themselves reference .ts files (or m2ts), which are mpeg-2 transport streams, not to be confused with mpeg-2 video. The .ts files are containers for the same H.264 video and AAC audio.
Why am I complaining?
It takes time to create the HLS files and playlists from the MP4 files
(Most importantly) We are now storing twice as much data on S3
Why should I care? If your S3 bill is $10K per month for storing both MP4 and HLS, now it is only $5K. Or put another way, if you are paying $100K for storing data in MP4, it would cost $200K to store the same content in both MP4 and HLS.
What do I want?
I want to store only the .ts files and serve both desktop users, iOS users, and Android users with that single file.
Is it possible?
Doesn’t HLS require 5-10 second .ts segments instead of one big file?
As of IETF draft 7, and version 4 of the protocol, HLS supports the tag EXT-X-BYTERANGE which allows you to specify a media segment as a byte range (subrange) of a larger URL.
Are .ts files compatible with HTML5 video?
Apparently not. They are a different container than MP4, yet contain the same video and audio content. Worth looking into how to store the raw video/audio data once and simply using the correct containers when necessary. If JS video players can convert HTML 5 MP4 files into Flash video on the fly if the browser does not support HTML 5 MP4, then why not be able to do the same with M2TS data?
I might be ignorant on some level, but maybe someone can shed some light on this issue, and possibly present a solution.
There currently is no good solution.
A little background.
Video streaming used to require custom protocols such as RTP/RTMP/RTSP etc. These protocols work fine except, we were basically building two separate networks. One HTTP based for standard web traffic, and the other one. The idea came along to split video into little chunks and serve them to the player over HTTP. This way we do not need special servers/software and we could take advantage of the giant HTTP CDNs that were being built. In addition. because the video was split into chunks, we can can encode the same video into different qualities/file sizes. Then the player can choose the best quality video for its current bandwidth. This was the perfect solution for mobile because of the constant changing network conditions. Several competing standard were developed. Move networks was the first to market [citation needed]. The design was copied by Microsoft (Smooth Streaming) and Apple (HTTP Live streaming aka HLS). Microsoft is phasing out smooth streaming in favor of DASH. DASH looks like it will become the default streaming solution of the future. Except, because of its design-by-comity approach, it has basically been stuck in comity for a few years. Now, in those few years, Apple sold Millions of IOS devices. So HLS can not just be discontinued. Why doesn't everyone just use HLS then? I can think of three reasons 1) Its Apples standard, and people are haters. 2) Transport streams are a complicate file format. and 3) Transport streams a patent encumbered. MP4 is not patent encumbered but it also does not have the adaptive abilities. This make user experience poor on 2G networks. The only network supported by the iPhone 1. Also AT&T at the time did not want full bitrate video streamed over there woefully inadequate celular network. HLS was the compromise. All of this predates HTML5. So the video tag was not even considered in its design.
Addressing your points:
1) It takes time to create the HLS files and playlists from the MP4
files
This is a programing website, Automate it.
2) We are now storing twice as much data on S3
[sic] I want to store only the .ts files and serve both desktop users,
iOS users, and Android users with that single file.
You and me both man :).
Possible solutions.
1) What is specifically wrong with Androids implementation? (except for lack of in older devices)
2) JW player can play HLS (Not sure about on android)
3) Server side transmux on demand.
Doesn’t HLS require 5-10 second .ts segments instead of one big file?
You can do byte-ranges, but you need to make sure all devices you are interested in support it.
If JS video players can convert HTML 5 MP4 files into Flash video on
the fly if the browser does not support HTML 5 MP4, then why not be
able to do the same with M2TS data?
They don't convert. Flash natively supports mp4. It is possible to convert TS in AS3/JS. I have done it. JW player can convert TS in browser. video.js may be able to as well.
I have a website that has a variety of embedded YouTube videos. When a user pauses a given video I want a screenshot to be taken of the playing video. Now, I've taken many approaches in tackling this problem such as copying the video frame to canvas (this doesn't work because the videos are external to my site), and also through the use of FFMpeg, and FFMpeg-PHP. The latter two- although very powerful- also do not work as the given piece of media has to be hosted on my server.
I'm at my wits end about what to do as I've spent countless hours trying to do this, and I'm ready to accept defeat.
Any ideas?
Regards,
Andre.
There's no supported method in the YouTube Player or Data API to take a screenshot of an arbitrary frame of a video.
I used the img.youtube.com/vi path to get the image. The function getScreen basically parses the youtube url and grabs the &v= argument to get the video id.
Since I use youtube.com/embed/ url format, then I had to rework the function a little to get the video id.
http://mistonline.in/wp/get-youtube-video-screenshot-using-simple-php-and-javascript/#
I want to find out if I can get some data on the percentage wise distribution of video content, for different video codecs currently used for video encoding. I know there are different applications/use-case scenarios which have different encoder used but i want to consdier all that and have a overall usage number(%)
My guess is(highest to lowest % of content) -
H.264(AVC)
DivX
MPEG2
VP6
Where do H.263, MPEG4, VC-1, RV, Theora, etc. fit in here.
How may this look like in future?
PS:I would like this to be community wiki to have get wider range of inputs, if someone with privileges can do it for me please.
thank you.
-AD
I am guessing that WebM format (which is actually VP8) which is part of the WebM Project will see a rise since YouTube is encoding all of the videos in WebM format as an alternative.
I vote for WebM as a better quality and freer alternative to H.264
Everyone knows about there instructional videos http://delphi.wikia.com/wiki/Delphi_Videos but I want to watch them on my iPad when I go on vacation.
The problem is the videos are in swf and will not play on my iPad. Does any know of another source for these videos in another format?
Thanks.
For the moment flash video is the container of choice for most video content on the internet. Saif is right. If you want those specific videos you'll need to convert them yourself. There are several decent flv to mp4 converters available for free (Miro comes to mind). SWF is takes a bit more work to extract the video content.
Now if you are looking for Delphi content that's already available in MPEG 4 you can try http://edn.embarcadero.com/tv. The content from the most recent Coderage event is available as an mp4 download.
You can convert them into a proper format using a free video convert like Any Video Converter
I've had reasonable success watching on-line Flash content on my iPad using iOSFlashVideo.
Not tried it on off-line flash files though.
--jeroen