これが可能かどうかを見つけるのに問題があります(どこにも情報がありません)。動画のアップロード中にフレーム (サムネイル) を抽出することはできますか? ユーザー側を抽出できる場合は、jscript を使用した抽出もオプションです。
助けてくれてありがとう!
これが可能かどうかを見つけるのに問題があります(どこにも情報がありません)。動画のアップロード中にフレーム (サムネイル) を抽出することはできますか? ユーザー側を抽出できる場合は、jscript を使用した抽出もオプションです。
助けてくれてありがとう!
この質問が投稿されてからほぼ 5 年が経ち、答えはイエスです。
コードを表示する前に、次のことを行います。
URL
オブジェクトを使用してローカル ビデオ ファイルへの URL を作成します。video
その URL を要素に読み込みます。canvas
オブジェクトにフレームを描画します。image
要素にエクスポートします (または、必要に応じてその画像をデータ URL としてサーバーに送信します)。<input type="file" id="upload"/>
<img id="thumbnail"/>
<script>
var input = document.getElementById('upload');
var img = document.getElementById('thumbnail');
input.addEventListener('change', function(event){
var file = this.files[0];
var url = URL.createObjectURL(file);
var video = document.createElement('video');
video.src = url;
var snapshot = function(){
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
img.src = canvas.toDataURL('image/png');
video.removeEventListener('canplay', snapshot);
};
video.addEventListener('canplay', snapshot);
});
</script>
PHPでそれを行う良い方法はないと思います。( https://stackoverflow.com/a/1309425/1488032 )
レンタルしたウェブスペースだけでなく、サーバーに他のソフトウェアをインストールして実行する権利がある場合は、ffmpeg などを使用し、system()、passthru()またはexec()を使用して php 内から呼び出すことをお勧めします。必要なものを抽出し、残りの処理を php で再度実行します。
xhtml に埋め込まれた svg 画像に依存するブラウザー ゲームを実行していますが、一部のブラウザー (特にモバイル ブラウザー) は完全な svg 構文をサポートしていません。この場合、このようなsystem()呼び出しを使用して、imagemagick の変換バイナリを使用して svg から png への変換を行い、結果を自分のページに表示します。
system("echo '$svgString' | convert svg:- png:- | base64");
似たようなものに戻る必要があると思います。
ffmpeg を使用したフレームの抽出に関する情報を次に示します: http://ubuntuforums.org/showthread.php?t=1141293
まず、フレームを抽出するプログラムを選択する必要があります。これには ffmpeg が一般的に使用されます。何を選択しても、部分的なファイルの内容を処理できる必要があります。
php スクリプトは、ファイルのアップロード全体が完了するまで実行を開始しませんが、php は最近、ファイルのアップロード中に別のphp スクリプトを実行できるようにする機能を取得し、スクリプト データのアップロードを取得できるようになります (ファイル名は重要です)。あなたに興味があります)。 http://php.net/manual/en/session.upload-progress.php
次に、基本的には、アップロード処理スクリプトでアップロードされている一時ファイル名を使用して、監視スクリプトからフレームを抽出する外部プログラムを呼び出します。
要約すると、ファイルを にアップロードしますupload.php
。
monitor.php
にアップロードされている一時ファイル名を取得しupload.php
、フレームを抽出します。
Javascript: いいえ。
アップロード中: いいえ。
アップロードしたら、はい。
「開発者」はコメントに正しいリンクを提供しましたが、ビデオをサーバーに保存してから、ffMpeg を実行して画像を取得する必要があります。ffMPEG はhttp://ffmpeg.org/download.htmlからダウンロードできます(自分でビルドする自信がない場合は、必要なビルドを入手してください。Linux と Windows のビルドがあります)。
ドキュメントはここにあります: http://ffmpeg.org/ffmpeg.htmlですが、http: //linuxers.org/tutorial/how-extract-images-video-using-ffmpegをつかむための少し読みやすいチュートリアルがあります画像。
注: 「phpFFMPEG」という名前の PHP 拡張機能がありますが、使用しないことをお勧めします。PHP で「exec()」を介して目的のコマンドを実行するだけです。ffMPEG は CPU コアごとに 1 回しか実行できないため、エラーの戻り値を確認してください。同時に 2 回試行すると失敗する可能性があります。アクションをキューに入れるか、失敗した場合は再試行してください。