Advertisement
zergon321

Untitled

Feb 22nd, 2023
646
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.97 KB | Source Code | 0 0
  1. // MP4Box -dash 4000 -rap -bs-switching no -profile live -out gpac_range/video video.mp4#video video.mp4#audio video_640p.mp4#video
  2. // ffmpeg -i video.mp4 -vf scale=640:360 video_640p.mp4
  3.  
  4. var video = $("#media-source-video")[0];
  5. var videoMIMECodec = 'video/mp4; codecs="avc1.64002A';
  6. var audioMIMECodec = 'audio/mp4; codecs="mp4a.40.2"'
  7.  
  8. if ("MediaSource" in window && MediaSource.isTypeSupported(videoMIMECodec)) {
  9.     var mediaSource = new MediaSource;
  10.     video.src = URL.createObjectURL(mediaSource);
  11.     mediaSource.addEventListener('sourceopen', sourceOpen);
  12. } else {
  13.     console.error(`Unsupported MIME type or codec: ${videoMIMECodec}`);
  14. }
  15.  
  16. $("#media-source-video").click(() => {
  17.     video.muted = !video.muted;
  18.     video.volume = 1;
  19. })
  20.  
  21. function sourceOpen() {
  22.     var videoSourceBuffer = mediaSource.addSourceBuffer(videoMIMECodec);
  23.  
  24.     fetch("/video/video_640p_dashinit.mp4", {
  25.         method: "GET"
  26.     }).then(response => {
  27.         return response.arrayBuffer();
  28.     }).then(buffer => {
  29.         videoSourceBuffer.appendBuffer(buffer);
  30.     });
  31.  
  32.     var audioSourceBuffer = mediaSource.addSourceBuffer(audioMIMECodec);
  33.  
  34.     fetch("/video/video_dash_track2_init.mp4", {
  35.         method: "GET"
  36.     }).then(response => {
  37.         return response.arrayBuffer();
  38.     }).then(buffer => {
  39.         audioSourceBuffer.appendBuffer(buffer);
  40.     });
  41.  
  42.     video.play();
  43.  
  44.     var i = 1;
  45.  
  46.     setInterval(() => {
  47.         fetch("/video/video_640p_dash" + i.toString() + ".m4s", {
  48.             method: "GET"
  49.         }).then(response => {
  50.             return response.arrayBuffer();
  51.         }).then(buffer => {
  52.             videoSourceBuffer.appendBuffer(buffer);
  53.         });
  54.  
  55.         fetch("/video/video_dash_track2_" + i.toString() + ".m4s", {
  56.             method: "GET"
  57.         }).then(response => {
  58.             return response.arrayBuffer();
  59.         }).then(buffer => {
  60.             audioSourceBuffer.appendBuffer(buffer);
  61.         });
  62.  
  63.         i++
  64.     }, 3000);
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement