1
我使用FFmpeg的捕捉到我的屏幕:直播不起作用
ffmpeg -f dshow -i video="UScreenCapture" -r 5 -s 640x480 -acodec libmp3lame -ac 1 -vcodec mpeg 4 -vtag divx -q 10 -f mpegts tcp://127.0.0.1:1234
所以讓它流於某處。接受者腳本:
error_reporting(E_ALL); /* Allow the script to hang around waiting for connections. */
set_time_limit(30); /* Turn on implicit output flushing so we see what we're getting as it comes in. */
ob_implicit_flush();
$address = '127.0.0.1';
$port = 1234;
$outfile = dirname(__FILE__)."/output.flv";
$ofp = fopen($outfile, 'wb');
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; sleep (5); die; }
if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); die; }
if (socket_listen($sock, 5) === false) { echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); die; }
if (($msgsock = socket_accept($sock)) === false) { echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; sleep (5); break; }
do {
$a = '';
socket_recv ($msgsock, $a, 65536, MSG_WAITALL);
fwrite ($ofp, $a);
//echo strlen($a)."\r\n";
} while (true);
它似乎將東西保存到磁盤好。現在,這裏是HTML:
我真的不知道如何做到這一點,但基於一個例子:
<video src="/output.flv"></video>
但它不會做任何事情。如果我想流傳輸的東西,那麼情況如何?
哪個瀏覽器?請注意,目前,不同的瀏覽器支持不同的編解碼器。還要注意,通過PHP設置正確的MIME類型,它已經引起了FF的問題。它的Firefox, – bcoughlan 2012-07-11 03:22:58
,我還沒有嘗試過與其他瀏覽器。但它將成爲一個實時流(無開始/結束),所以它可能會錯過文件標識符頭文件?也許它期望靜態格式? – 2012-07-11 07:55:11
它不適用於任何瀏覽器 – 2012-07-11 15:18:21