mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-07-08 02:34:16 -04:00
The player now load transmuxed videos.
This commit is contained in:
parent
b129a2d84d
commit
4fa5a6b30f
@ -339,7 +339,7 @@ export class PlayerComponent implements OnInit
|
|||||||
init()
|
init()
|
||||||
{
|
{
|
||||||
var dashPlayer = MediaPlayer().create();
|
var dashPlayer = MediaPlayer().create();
|
||||||
dashPlayer.initialize(this.player, "http://localhost:5005/" + this.item.link + "/" + this.item.link + ".mpd", true);
|
dashPlayer.initialize(this.player, "/video/transmux/" + this.item.link + "/", true);
|
||||||
|
|
||||||
let sub: string = this.route.snapshot.queryParams["sub"];
|
let sub: string = this.route.snapshot.queryParams["sub"];
|
||||||
if (sub != null)
|
if (sub != null)
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
using Kyoo.InternalAPI;
|
using Kyoo.InternalAPI;
|
||||||
using Kyoo.Models;
|
using Kyoo.Models;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace Kyoo.Controllers
|
namespace Kyoo.Controllers
|
||||||
{
|
{
|
||||||
@ -10,11 +12,13 @@ namespace Kyoo.Controllers
|
|||||||
{
|
{
|
||||||
private readonly ILibraryManager libraryManager;
|
private readonly ILibraryManager libraryManager;
|
||||||
private readonly ITranscoder transcoder;
|
private readonly ITranscoder transcoder;
|
||||||
|
private readonly string transmuxPath;
|
||||||
|
|
||||||
public VideoController(ILibraryManager libraryManager, ITranscoder transcoder)
|
public VideoController(ILibraryManager libraryManager, ITranscoder transcoder, IConfiguration config)
|
||||||
{
|
{
|
||||||
this.libraryManager = libraryManager;
|
this.libraryManager = libraryManager;
|
||||||
this.transcoder = transcoder;
|
this.transcoder = transcoder;
|
||||||
|
transmuxPath = config.GetValue<string>("transmuxTempPath");
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{showSlug}-s{seasonNumber}e{episodeNumber}")]
|
[HttpGet("{showSlug}-s{seasonNumber}e{episodeNumber}")]
|
||||||
@ -28,7 +32,7 @@ namespace Kyoo.Controllers
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("transmux/{showSlug}-s{seasonNumber}e{episodeNumber}")]
|
[HttpGet("transmux/{showSlug}-s{seasonNumber}e{episodeNumber}/")]
|
||||||
public IActionResult Transmux(string showSlug, long seasonNumber, long episodeNumber)
|
public IActionResult Transmux(string showSlug, long seasonNumber, long episodeNumber)
|
||||||
{
|
{
|
||||||
WatchItem episode = libraryManager.GetWatchItem(showSlug, seasonNumber, episodeNumber);
|
WatchItem episode = libraryManager.GetWatchItem(showSlug, seasonNumber, episodeNumber);
|
||||||
@ -45,6 +49,15 @@ namespace Kyoo.Controllers
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet("transmux/{episodeLink}/dash/{chunk}")]
|
||||||
|
public IActionResult GetTransmuxedChunk(string episodeLink, string chunk)
|
||||||
|
{
|
||||||
|
string path = Path.Combine(transmuxPath, episodeLink);
|
||||||
|
path = Path.Combine(path, "dash" + Path.DirectorySeparatorChar + chunk);
|
||||||
|
|
||||||
|
return PhysicalFile(path, "video/iso.segment");
|
||||||
|
}
|
||||||
|
|
||||||
[HttpGet("transcode/{showSlug}-s{seasonNumber}e{episodeNumber}")]
|
[HttpGet("transcode/{showSlug}-s{seasonNumber}e{episodeNumber}")]
|
||||||
public IActionResult Transcode(string showSlug, long seasonNumber, long episodeNumber)
|
public IActionResult Transcode(string showSlug, long seasonNumber, long episodeNumber)
|
||||||
{
|
{
|
||||||
|
@ -11,11 +11,11 @@ namespace Kyoo.InternalAPI
|
|||||||
{
|
{
|
||||||
public class Transcoder : ITranscoder
|
public class Transcoder : ITranscoder
|
||||||
{
|
{
|
||||||
private readonly string tempPath;
|
private readonly string transmuxPath;
|
||||||
|
|
||||||
public Transcoder(IConfiguration config)
|
public Transcoder(IConfiguration config)
|
||||||
{
|
{
|
||||||
tempPath = config.GetValue<string>("tempPath");
|
transmuxPath = config.GetValue<string>("transmuxTempPath");
|
||||||
|
|
||||||
Debug.WriteLine("&Api INIT (unmanaged stream size): " + TranscoderAPI.Init() + ", Stream size: " + Marshal.SizeOf<Models.Watch.Stream>());
|
Debug.WriteLine("&Api INIT (unmanaged stream size): " + TranscoderAPI.Init() + ", Stream size: " + Marshal.SizeOf<Models.Watch.Stream>());
|
||||||
}
|
}
|
||||||
@ -33,7 +33,7 @@ namespace Kyoo.InternalAPI
|
|||||||
|
|
||||||
public string Transmux(WatchItem episode)
|
public string Transmux(WatchItem episode)
|
||||||
{
|
{
|
||||||
string folder = Path.Combine(tempPath, episode.Link);
|
string folder = Path.Combine(transmuxPath, episode.Link);
|
||||||
string manifest = Path.Combine(folder, episode.Link + ".mpd");
|
string manifest = Path.Combine(folder, episode.Link + ".mpd");
|
||||||
|
|
||||||
Directory.CreateDirectory(folder);
|
Directory.CreateDirectory(folder);
|
||||||
@ -48,7 +48,8 @@ namespace Kyoo.InternalAPI
|
|||||||
|
|
||||||
public string Transcode(string path)
|
public string Transcode(string path)
|
||||||
{
|
{
|
||||||
return @"D:\Videos\Anohana\AnoHana S01E01.mp4";
|
//NOT IMPLEMENTED YET
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
"AllowedHosts": "*",
|
"AllowedHosts": "*",
|
||||||
|
|
||||||
"databasePath": "C://Projects/database.db",
|
"databasePath": "C://Projects/database.db",
|
||||||
"tempPath": "C:\\\\Projects\\temp",
|
"transmuxTempPath": "C:\\\\Projects\\temp\\transmux",
|
||||||
"peoplePath": "D:\\\\Videos\\People",
|
"peoplePath": "D:\\\\Videos\\People",
|
||||||
"plugins": "C:\\Projects\\Kyoo\\Debug",
|
"plugins": "C:\\Projects\\Kyoo\\Debug",
|
||||||
"providerPlugins": "C://Projects/Plugins/Providers",
|
"providerPlugins": "C://Projects/Plugins/Providers",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user