mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 09:49:28 +02:00
Add support for standalone FFMPEG restreaming configuration
- Introduced a new property `restreamStandAloneFFMPEG` in the Live plugin to allow configuration of standalone FFMPEG restreaming. - Updated the Live_restreams token verification process to include the `restreamStandAloneFFMPEG` value from the Live plugin data object.
This commit is contained in:
parent
45f839c8b6
commit
4324e883b5
4 changed files with 27 additions and 4797 deletions
|
@ -624,13 +624,17 @@ function cutVideoWithFFmpeg($inputFile, $startTimeInSeconds, $endTimeInSeconds,
|
|||
}
|
||||
|
||||
|
||||
function buildFFMPEGRemoteURL($actionParams, $callback='')
|
||||
function buildFFMPEGRemoteURL($actionParams, $callback='', $standAloneFFMPEG='')
|
||||
{
|
||||
$obj = AVideoPlugin::getDataObjectIfEnabled('API');
|
||||
if (empty($obj) || empty($obj->standAloneFFMPEG)) {
|
||||
return false;
|
||||
}
|
||||
if(empty($standAloneFFMPEG)){
|
||||
$url = $standAloneFFMPEG;
|
||||
}else{
|
||||
$url = "{$obj->standAloneFFMPEG}";
|
||||
}
|
||||
$actionParams['time'] = time();
|
||||
$actionParams['notifyCode'] = encryptString(time());
|
||||
$actionParams['callback'] = encryptString($callback);
|
||||
|
@ -640,9 +644,9 @@ function buildFFMPEGRemoteURL($actionParams, $callback='')
|
|||
return $url;
|
||||
}
|
||||
|
||||
function execFFMPEGAsyncOrRemote($command, $keyword, $callback='')
|
||||
function execFFMPEGAsyncOrRemote($command, $keyword, $callback='', $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['ffmpegCommand' => $command, 'keyword' => $keyword], $callback);
|
||||
$url = buildFFMPEGRemoteURL(['ffmpegCommand' => $command, 'keyword' => $keyword], $callback, $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("execFFMPEGAsyncOrRemote: URL $command");
|
||||
_error_log("execFFMPEGAsyncOrRemote: URL $url");
|
||||
|
@ -653,9 +657,9 @@ function execFFMPEGAsyncOrRemote($command, $keyword, $callback='')
|
|||
}
|
||||
}
|
||||
|
||||
function getFFMPEGRemoteLog($keyword)
|
||||
function getFFMPEGRemoteLog($keyword, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['log' => 1, 'keyword' => $keyword]);
|
||||
$url = buildFFMPEGRemoteURL(['log' => 1, 'keyword' => $keyword], '', $standAloneFFMPEG);
|
||||
//var_dump($url);
|
||||
if ($url) {
|
||||
_error_log("getFFMPEGRemoteLog: URL $url " . json_encode(debug_backtrace()));
|
||||
|
@ -665,9 +669,9 @@ function getFFMPEGRemoteLog($keyword)
|
|||
}
|
||||
}
|
||||
|
||||
function stopFFMPEGRemote($keyword)
|
||||
function stopFFMPEGRemote($keyword, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['stop' => 1, 'keyword' => $keyword]);
|
||||
$url = buildFFMPEGRemoteURL(['stop' => 1, 'keyword' => $keyword], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("stopFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
@ -676,9 +680,9 @@ function stopFFMPEGRemote($keyword)
|
|||
}
|
||||
}
|
||||
|
||||
function testFFMPEGRemote()
|
||||
function testFFMPEGRemote($standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['test' => 1, 'microtime' => microtime(true)]);
|
||||
$url = buildFFMPEGRemoteURL(['test' => 1, 'microtime' => microtime(true)], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("testFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
@ -687,9 +691,9 @@ function testFFMPEGRemote()
|
|||
}
|
||||
}
|
||||
|
||||
function listFFMPEGRemote($keyword = '')
|
||||
function listFFMPEGRemote($keyword = '', $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['list' => 1, 'keyword' => $keyword, 'microtime' => microtime(true)]);
|
||||
$url = buildFFMPEGRemoteURL(['list' => 1, 'keyword' => $keyword, 'microtime' => microtime(true)], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("listFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
@ -698,9 +702,9 @@ function listFFMPEGRemote($keyword = '')
|
|||
}
|
||||
}
|
||||
|
||||
function killFFMPEGRemote($pid)
|
||||
function killFFMPEGRemote($pid, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['kill' => $pid, 'microtime' => microtime(true)]);
|
||||
$url = buildFFMPEGRemoteURL(['kill' => $pid, 'microtime' => microtime(true)], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("killFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
@ -709,7 +713,7 @@ function killFFMPEGRemote($pid)
|
|||
}
|
||||
}
|
||||
|
||||
function isKeywordRunningFFMPEGRemote($keyword)
|
||||
function isKeywordRunningFFMPEGRemote($keyword, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['isKeywordRunning' => $keyword, 'microtime' => microtime(true)]);
|
||||
if ($url) {
|
||||
|
@ -720,9 +724,9 @@ function isKeywordRunningFFMPEGRemote($keyword)
|
|||
}
|
||||
}
|
||||
|
||||
function deleteFolderFFMPEGRemote($videoFilename)
|
||||
function deleteFolderFFMPEGRemote($videoFilename, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['deleteFolder' => $videoFilename]);
|
||||
$url = buildFFMPEGRemoteURL(['deleteFolder' => $videoFilename], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("deleteFolderFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
@ -731,9 +735,9 @@ function deleteFolderFFMPEGRemote($videoFilename)
|
|||
}
|
||||
}
|
||||
|
||||
function deleteFileFFMPEGRemote($filePath)
|
||||
function deleteFileFFMPEGRemote($filePath, $standAloneFFMPEG='')
|
||||
{
|
||||
$url = buildFFMPEGRemoteURL(['deleteFile' => $filePath]);
|
||||
$url = buildFFMPEGRemoteURL(['deleteFile' => $filePath], '', $standAloneFFMPEG);
|
||||
if ($url) {
|
||||
_error_log("deleteFileFFMPEGRemote: URL $url");
|
||||
return json_decode(url_get_contents($url));
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -508,6 +508,7 @@ class Live extends PluginAbstract
|
|||
$o->value = self::CAN_RESTREAM_All_USERS;
|
||||
$obj->whoCanRestream = $o;
|
||||
self::addDataObjectHelper('whoCanRestream', 'Who can Restream');
|
||||
$obj->restreamStandAloneFFMPEG = '';
|
||||
|
||||
$obj->disableDVR = false;
|
||||
self::addDataObjectHelper('disableDVR', 'Disable DVR', 'Enable or disable the DVR Feature, you can control the DVR length in your nginx.conf on the parameter hls_playlist_length');
|
||||
|
|
|
@ -16,6 +16,7 @@ if (empty($_REQUEST['token'])) {
|
|||
forbiddenPage('Token is empty');
|
||||
}
|
||||
|
||||
$liveObj = AVideoPlugin::getDataObject('Live');
|
||||
|
||||
$token = Live_restreams_logs::verifyToken($_REQUEST['token']);
|
||||
|
||||
|
@ -46,6 +47,7 @@ $obj->restreamsToken = array($obj->live_restreams_id=>encryptString($obj->live_r
|
|||
$obj->m3u8 = Live::getM3U8File($lhistory->getKey(), true, true);
|
||||
$obj->token = encryptString(array('users_id' => $obj->users_id, 'time' => time(), 'liveTransmitionHistory_id' => $obj->liveTransmitionHistory_id, 'live_restreams_id' => $obj->live_restreams_id));
|
||||
$obj->responseToken = $obj->token;
|
||||
$obj->restreamStandAloneFFMPEG = $liveObj->restreamStandAloneFFMPEG ;
|
||||
|
||||
switch ($token->action) {
|
||||
case 'log':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue