The timelapse video used has been got from the website yosemite project.
More informations about Colin Delehanty and Sheldon Neil that directed the people that made it can be read on the about page
Video in 8K HDR compressed in h265 @ 9Kbps
not viewable by pc browsers, to be opened onlyby VLC http://www.iginomanfre.it/video/Peru_8K_HDR.mp4 it is always available (because it is stream by the web server) but
requires a lot of computational power to be presented
require the support of vlc NPAPI plug-in (no more supported by current browsers)
The usage of legacy version of common browsers is the only chance to use VLC NPAPI plug-in as I wrote in True unicast streaming has lost his appeal
Original live http streaming with VLC
(no more supported by current browsers)
Segmented stream in HLS generated with VLC
(no more supported by current browsers)
The embedded stream can be directly loaded with an h265 player (such as VLC media player) recalling http://www.iginomanfre.it/hlsB/hlsB.m3u8, the metafile of HLS trasmission.
This is an offline hls material spliced with VLC.
This is how this page appears with firefox 51.0b9. (see the post firefox 51)
Technically it is a Standard definition 720x400 progressive video precompressed in hevc (h265) 16:9 100-300 Kbps variable bitrate, 24 frame per second with 64 Kbps AAC-LC stereo 44KHz audio through the FFmpeg x265 encoder, wrapped in mpeg-4 ISO container.
A mean variable bitrate of 200 Kbps means a bandwidth variable 100 and 350 Kbps, it could be arranged by the ISO mpeg wrapper but this is not the case.
The decompression of hevc, being about 1000 time more complex than mpeg2, requires enough power, and this page that may contains two simultaneous streams, could not be light to be processed.
But do not worry: at 99.99% probability your browser will not show you any video within text.
These streams are transmitted (in unicast) and could not reproduced by any browser through its native capabilities and the <video> instruction because, for license problems, browsers can only play h264 and vp8 video formats.
Original live http streaming with VLCin h265
(no more supported by current browsers)
The embedded stream can be directly loaded with an h265 player (such as VLC media player) recalling http://www.iginomanfre.it/yosemite_SD200.
The banned VLC cone means that your browser do not support VLC NPAPI Plug-in
The real time stream in h265 opened with VLC (it cannot be played anyhow else) in foreground on Firefox 93 for windows
Beware the stream http//iginomanfre.it:64036/Yosemite2 proxed as http//iginomanfre.it/Yosemite_SD200is not always available
contact me at (+39) 3359235346 (even via whatsapp) of by e-mail ([email protected]) if you are interested on how I do it and why it is not
always available...
This page opened with safari 5.1.7, an old version no more mantained
It is the only one capable to play h265 compression within page excluding the android tv browsers
html video tag with UHD content
The only difference with the former is the size of the material stream: UHD (3860x2160 pixel).
Due to the size (greater than any usual monitor, I play a resized reproduction, but the stream are 100% and and the efforts of the browser may be 100%. In this sense, please note that my Core2duo laptop is unable to reproduce it, the hadware decoder of a cheap SetTopBox reboots, and only
the intel cube equipped with i5 processor is able to play it due to the adopted GPU.
The video is resized only for user interface coherence purpose.
If you want to download it click over this link, with right mouse button and save as.
The left button click will reproduce the stream in full size (if possible)
The filesize is 358 MB, so this activity should be avoid on mobile phones.
The reproduction may be not fluid for network problems: as shown from the following graph the mean bitrate in 10 Mbps, but there are many spikes above 10 Mbps and one over 20 Mbps.
The reproduction may be not fluid also for unsufficient decoding capability: the following graph shows the activity of intel cube GPU during the reproduction via web.
GPU activity of the intel cube i5 (video decode 28%, 3D about 20%)
Bandwidth drained by the intel cube i5 (less than 15 Mbps, connected in copper)
The video call is the following. Please note the width at 720 pixel (about 1/4)
The following is the mediainfo analysis of the file
General
Complete name : F:\yosemite\yosemite_II_h264_4k_9000.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 350 MiB
Duration : 5 min 19 s
Overall bit rate : 9 173 kb/s
Writing application : Lavf58.20.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5.1
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, RefFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5 min 19 s
Bit rate : 9 000 kb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.045
Stream size : 344 MiB (98%)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x133 / me=hex
subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16
chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11
fast_pskip=1 / chroma_qp_offset=-2 / threads=6 / lookahead_threads=1
sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0
constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0
direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250
keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40
rc=2pass / mbtree=1 / bitrate=9000 / ratetol=1.0 / qcomp=0.60
qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5
ip_ratio=1.40 / aq=1:1.00
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 5 min 19 s
Bit rate mode : Constant
Bit rate : 160 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 6.10 MiB (2%)
Default : Yes
Alternate group : 1
Simple external call
Please note that this streaming way could not be available: it is always available only for hslB, because it has been spliced offline.
This one is the plain external reference to an .m3u8 metafile to be open with an application resident on the client:
the above image is a plain link to an external object...
But
1) depends on the chosen player: there could be some opening problem
These are the m3u8 files downloaded (and opened) in sequence repeating the recall n times
2) m3u8 file has been thought for playlists, the player plays the download state (hls8-n), not the next (hls8-n+1).
hlsB.m3u8 works always because it is steady .m3u8 file: it is a fixed and closed playlist,
which never updates and whose content are never updated.
Clicking on the repeat option the reproduction will never last.
anyhow the calling line is the following:
passing through the following steps:
or
depending on the player and its version.
Clicking on the image your browser will ask you what I must do with this file? Open or download.
Really it will anyhow downloaded but automatically it will opened with the application you specify in the settings (here VLC).
external call of hevc UHD content
The server is also able to stream (but the browsers are unable to reproduce it) an UHD hevc content (3892x2160 pixels).
After clicking clicking over this link, right mouse button you can:
save as (the filesize is 182 MB)
or open the stream in the external application:
copy the address of the link ("http://iginomanfre/video/yosemite_II_hevc_4k_4500.mp4")
open a suitable application (such as VLC)
and paste the copied address as a stream to open
the link pasted
play it (it is a UHD: 3892x2160 pixels!)
this is the drained bandwidth
this is the gpu effort
stopping the play the gpu effort immediately stops
The usage of vlc for realtime generation of a m3u8 file
VLC plug-in is no more supported by latest de facto standard browsers.
As of writing with these browsers is only possible to play h264 or vp8 video materials within html page.
So the only way to play a HEVC video is an external call.
The stream in input is a loop continously generated by VLC (as well an external stream) and broken in 10 seconds chops (aka segments) by a further instance of VLC which updates in realtime the .m3u8 manifest/metafile.
The usage of VLC for continous streaming as well realtime splicing easily bring the system in an unstable state because the loop of VLC drains at each loop a very small amount of system RAM, that - in few days - bring the system to reboot.
For this reason the hls8 chops could not be available. Please consider to recall hlsB (http://iginomanfre.it/hlsB/hlsB.m3u8) or hls2 (http://iginomanfre.it/hls2/hls2.m3u8) offline spliced. The production of hlsB is widely dealt in the next section.
The .m3u8 manifest file (or metafile) is a realtime updated file by VLC meanwhile it produces the chops of the original source http://www.iginomanfre.it/yosemite_SD100.
The following is http://iginomanfre.it/hls8/hls8.m3u8 one day after it has been launched:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-MEDIA-SEQUENCE:31691
#EXTINF:8.05,
http://iginomanfre.it/hls8/hls8-00031691.ts
#EXTINF:7.96,
http://iginomanfre.it/hls8/hls8-00031692.ts
#EXTINF:8.12,
http://iginomanfre.it/hls8/hls8-00031693.ts
#EXTINF:7.91,
http://iginomanfre.it/hls8/hls8-00031694.ts
#EXTINF:7.91,
http://iginomanfre.it/hls8/hls8-00031695.ts
And these are the files generated (sorted by date)
The red border window ideally moves down passing the time (and changing the m3u8 file)
Counters, starting from 1, are resetted periodically (they have a lenght of 8 digit) and all the segments are deleted before restarting the splitting.
Metafile and chops are accessed through Apache.
The required bandwidth is about equal the nominal transmitted.
The meaningful section of the batch I used for the generation is the following:
del "C:\Program Files (x86)\...\hls8\*.*" /Q
"c:\program files\vlc\vlc" --network-caching=300
http://localhost:64039/Yosemite
:sout=#std{access=livehttp{seglen=10,delsegs=true,numsegs=5,
index="C:\Program Files (x86)\...\hls8\hls8.m3u8",
index-url=http://iginomanfre.it/hls8/hls8-########.ts},mux=ts{use-key-frames},
dst="C:\Program Files (x86)\...\hls8\hls8-########.ts"}
The meaning of these lines is:
1) Open the true stream (in loop, never ending) http://localhost:64039/Yosemite
(available to external viewing as http://iginomanfre.it/Yosemite_SD100)
2) split it in slices of 10 seconds each,
3) delete the segments after the creation of 5 new good items
4) align the splittings to key-frames, save the slices on the server on this directory .
5) log these created segments in the .m3u8 file referring urls therein as http://...
Please note that the video is hevc (h265) despite not at the maximum compression efficiency because uses key-frames.
It cannot be played by the browsers without an external plug-in
This is the analysis of the source stream
General
ID : 27220 (0x6A54)
Complete name : C:\Program Files (x86)\...\hls8\hls8-00031912.ts
Format : MPEG-TS
File size : 273 KiB
Duration : 7 s 848 ms
Overall bit rate mode : Variable
Overall bit rate : 275 kb/s
Video
ID : 100 (0x64)
Menu ID : 1 (0x1)
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L3@Main
Codec ID : 36
Duration : 16 h 50 min
Width : 720 pixels
Height : 400 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 (23976/1000) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Writing library : x265 1.7:[Windows][GCC 4.9.2][32 bit]
Encoding settings : wpp / ctu=64 / min-cu-size=8 ....
Audio
ID : 200 (0xC8)
Menu ID : 1 (0x1)
Format : AAC
Format/Info : Advanced Audio Codec
Format version : Version 4
Format profile : LC
Muxing mode : ADTS
Codec ID : 15
Duration : 7 s 941 ms
Bit rate mode : Variable
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 spf)
Compression mode : Lossy
Delay relative to video : -68 ms
Menu
ID : 32 (0x20)
Menu ID : 1 (0x1)
Duration : 7 s 848 ms
List : 200 (0xC8) (AAC) / 100 (0x64) (HEVC)
Service type : advanced codec SD digital television
The usage of vlc for continous streaming as well realtime splicing easily bring the system in an unstable state because the loop of VLC drains loop by loop a very small amount of system RAM, that - in few days - reboot.
The reproduction of a m3u8 metafile (or more exactly playlist) can also be shared on the web by a standard streaming server such as apache: it is sufficient to split offline the file and save the chops as generated by VLC.
As the former, even this is a plain external reference to an hlsB.m3u8 metafile to be open with an application resident on the client:
It seems the same but does not changes only the 8 in B: it is a different approach.
The chops are not obtained in real time from a live streaming but once from a file.
The metafile (such as hlsB.m3u8) is produced from a mp4 file with a command line such as:
"c:\program files\vlc\vlc" :file-caching=300 "mp4_file_with_path"
:sout=#std
{
access=livehttp{seglen=10,delsegs=false,
index="",
index-url=-########.ts},
mux=ts{use-key-frames},
dst="-########.ts"
}
please note that:
1) the splitted source is a file. The path must following the operating system conventions: windows backslash (\), linux slash (/).
2) the eight hashes -######## at the end of the filenames will be replaced by vlc with a counter.
3) The mp4 source file could be the same h264 used above in the html embedded, but it is an hevc (h265) file wrapped in mp4, that the most diffused browsers are - without plug-in - unable to play.