私はクラウド サーバーを持っていて、その中で drupal 7 を実行しています。何らかの理由で、サーバー側で VLC プレーヤーを使用してライブ ビデオ録画を行う必要があります。コマンドラインコマンドを実行してこれを行うことができます。しかし、クライアントがライブビデオのURLを追加できるdrupalのWebページをクライアントに提供できるかどうか疑問に思っていました。送信をクリックすると、コマンドラインコマンドがサーバーターミナルで実行されます...そのようなものかどうか教えてください可能かどうか これに関するリード/リンクは高く評価されます 事前に感謝します
2 に答える
Drupal の部分は、実際には最も簡単なものです。カスタム モジュールを作成してhook_menu()を実装し、ページにフォームを提供する必要があります (フォーム APIを使用してビルドします) 。
function MODULE_menu() {
return array(
'encode_video' => array(
'page callback' => 'drupal_get_form',
'page arguments' => array('MODULE_encode_video_form'),
'access arguments' => 'encode video'
)
);
}
function MODULE_encode_video_form($form, &$form_state) {
$form = array(
'video_url' => array(
'#type' => 'textfield',
'#title' => t('Video URL'),
'#size' => 80,
'#required' => TRUE,
),
'submit' => array(
'#type' => 'submit',
'#value' => t('Encode'),
),
);
return $form;
}
function MODULE_encode_video_form_validate($form, &$form_state) {
// Validate and sanitize $form_state['values']['video_url'] here...
}
function MODULE_encode_video_form_submit($form, $form_state) {
$url = $form_state['values']['video_url'];
// Start video encoding here...
}
ビデオのエンコードは最も難しい部分です。PHP からビデオ エンコーディング プロセスを直接開始するために使用するメソッドは、慎重に作成する必要があります。たとえば、エンコーディングが多すぎてサーバーが過負荷になるのを避けるために、プロセス管理を処理する必要があります。また、PHP プロセスのブロックを回避する (タイムアウトを回避する) ために、プロセスがバックグラウンドで適切に起動されるようにする必要があります。おそらくより良い解決策は、ある種のバックグラウンド プロセス マネージャーを使用してエンコーディングをキューに入れることです。ここでは、 Gearmanが簡単でクリーンなソリューションになる可能性があります。また、長時間実行されるビデオ エンコーディングにより適した別の言語でビデオ エンコーディング プロセスを記述することもできます。Drupal での使用を支援するために、現在開発中のGearman 統合モジュールがありますが、必須ではありません。
exec
shell_exec
始めるのに役立ちます。
http://php.net/manual/en/function.exec.php
コマンドラインから任意のLinuxコマンドを実行できます。
注意してください!!! 文字列からコマンドを動的に作成していないことを確認してください。これにより、最大のpwnageまで開くことができます。