Add rtmp tests
This commit is contained in:
parent
ef65cb502b
commit
37c223638d
4 changed files with 53 additions and 8 deletions
|
@ -35,6 +35,7 @@ class Config
|
||||||
public $convert = false;
|
public $convert = false;
|
||||||
public $avconv = 'vendor/bin/ffmpeg';
|
public $avconv = 'vendor/bin/ffmpeg';
|
||||||
public $rtmpdump = 'vendor/bin/rtmpdump';
|
public $rtmpdump = 'vendor/bin/rtmpdump';
|
||||||
|
public $curl = '/usr/bin/curl';
|
||||||
public $curl_params = array();
|
public $curl_params = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -196,21 +196,27 @@ class VideoDownload
|
||||||
$builder->add('--playpath');
|
$builder->add('--playpath');
|
||||||
$builder->add($video->play_path);
|
$builder->add($video->play_path);
|
||||||
}
|
}
|
||||||
|
if (isset($video->rtmp_conn)) {
|
||||||
foreach ($video->rtmp_conn as $conn) {
|
foreach ($video->rtmp_conn as $conn) {
|
||||||
$builder->add('--conn');
|
$builder->add('--conn');
|
||||||
$builder->add($conn);
|
$builder->add($conn);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (isset($video->app)) {
|
||||||
|
$builder->add('--app');
|
||||||
|
$builder->add($video->app);
|
||||||
|
}
|
||||||
$chain = new Chain($builder->getProcess());
|
$chain = new Chain($builder->getProcess());
|
||||||
$chain->add('|', $avconvProc);
|
$chain->add('|', $avconvProc);
|
||||||
} else {
|
} else {
|
||||||
if (!shell_exec('which curl')) {
|
if (!shell_exec('which '.$this->config->curl)) {
|
||||||
throw(new \Exception('Can\'t find curl'));
|
throw(new \Exception('Can\'t find curl'));
|
||||||
}
|
}
|
||||||
$chain = new Chain(
|
$chain = new Chain(
|
||||||
ProcessBuilder::create(
|
ProcessBuilder::create(
|
||||||
array_merge(
|
array_merge(
|
||||||
array(
|
array(
|
||||||
'curl',
|
$this->config->curl,
|
||||||
'--silent',
|
'--silent',
|
||||||
'--location',
|
'--location',
|
||||||
'--user-agent', $video->http_headers->{'User-Agent'},
|
'--user-agent', $video->http_headers->{'User-Agent'},
|
||||||
|
|
|
@ -10,3 +10,4 @@ curl_params:
|
||||||
convert: false
|
convert: false
|
||||||
avconv: vendor/bin/ffmpeg
|
avconv: vendor/bin/ffmpeg
|
||||||
rtmpdump: vendor/bin/rtmpdump
|
rtmpdump: vendor/bin/rtmpdump
|
||||||
|
curl: /usr/bin/curl
|
||||||
|
|
|
@ -105,6 +105,24 @@ class VideoDownloadTest extends \PHPUnit_Framework_TestCase
|
||||||
'vimeocdn.com',
|
'vimeocdn.com',
|
||||||
"Carving the Mountains-24195442.mp3"
|
"Carving the Mountains-24195442.mp3"
|
||||||
),
|
),
|
||||||
|
array(
|
||||||
|
'http://www.bbc.co.uk/programmes/b039g8p7', 'bestaudio/best',
|
||||||
|
"Leonard Cohen, Kaleidoscope - BBC Radio 4-b039d07m.flv",
|
||||||
|
'bbcodspdns.fcod.llnwd.net',
|
||||||
|
"Leonard Cohen, Kaleidoscope - BBC Radio 4-b039d07m.mp3"
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'http://www.arte.tv/guide/de/sendungen/XEN/xenius/?vid=055918-015_PLUS7-D', 'RTMP_MQ_1',
|
||||||
|
"Xenius-063945-044-A.flv",
|
||||||
|
'edgefcs.net',
|
||||||
|
"Xenius-063945-044-A.mp3"
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'http://www.rtl2.de/sendung/grip-das-motormagazin/folge/folge-203-0', 'bestaudio/best',
|
||||||
|
"GRIP sucht den Sommerkönig-folge-203-0.f4v",
|
||||||
|
'edgefcs.net',
|
||||||
|
"GRIP sucht den Sommerkönig-folge-203-0.mp3"
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,12 +227,13 @@ class VideoDownloadTest extends \PHPUnit_Framework_TestCase
|
||||||
*/
|
*/
|
||||||
public function testGetAudioStream($url, $format)
|
public function testGetAudioStream($url, $format)
|
||||||
{
|
{
|
||||||
$process = $this->download->getAudioStream($url, $format);
|
$stream = $this->download->getAudioStream($url, $format);
|
||||||
$this->assertInternalType('resource', $process);
|
$this->assertInternalType('resource', $stream);
|
||||||
|
$this->assertNotEmpty(fread($stream, 100));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test getAudioStream function
|
* Test getAudioStream function without avconv
|
||||||
*
|
*
|
||||||
* @param string $url URL
|
* @param string $url URL
|
||||||
* @param string $format Format
|
* @param string $format Format
|
||||||
|
@ -229,4 +248,22 @@ class VideoDownloadTest extends \PHPUnit_Framework_TestCase
|
||||||
$config->avconv = 'foobar';
|
$config->avconv = 'foobar';
|
||||||
$this->download->getAudioStream($url, $format);
|
$this->download->getAudioStream($url, $format);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test getAudioStream function without curl or rtmpdump
|
||||||
|
*
|
||||||
|
* @param string $url URL
|
||||||
|
* @param string $format Format
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @expectedException Exception
|
||||||
|
* @dataProvider urlProvider
|
||||||
|
*/
|
||||||
|
public function testGetAudioStreamCurlError($url, $format)
|
||||||
|
{
|
||||||
|
$config = \Alltube\Config::getInstance();
|
||||||
|
$config->curl = 'foobar';
|
||||||
|
$config->rtmpdump = 'foobar';
|
||||||
|
$this->download->getAudioStream($url, $format);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue