3
A
答えて
8
。 $cmd
を実際に実行するには、popen()
,proc_open()
、またはexec()
のいずれかを使用する必要があります。
この機能をお試しください。 ffmpegがアクセス可能であれば、画像を生成するはずです。アクセス可能にするには、linuxの$path
に追加してください。これをWindowsのwindows/system32
フォルダにドロップしてください。または、Windowsのコントロールパネルの環境変数に追加します。
/** * ExtractThumb, extracts a thumbnail from a video * * This function loads a video and extracts an image from a frame 4 * seconds into the clip * @param $in string the input path to the video being processed * @param $out string the path where the output image is saved */ function ExtractThumb($in, $out) { $thumb_stdout; $errors; $retval = 0; // Delete the file if it already exists if (file_exists($out)) { unlink($out); } // Use ffmpeg to generate a thumbnail from the movie $cmd = "ffmpeg -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1"; exec($cmd, $thumb_stdout, $retval); // Queue up the error for processing if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; } if (!empty($thumb_stdout)) { foreach ($thumb_stdout as $line) { echo $line . "
\n"; } } if (!empty($errors)) { foreach ($errors as $error) { echo $error . "
\n"; } } }
$thumb_stdout
- 出力はCLIと同じです。これは、ffmpegが何をしているのかを確認したり、動作していないとクラッシュする場所を知るのに便利です。
$errors
- CLIがエラーコード(IE、ffmpegがクラッシュした場合)で終了すると、エラーが表示されます。
2
PHPプログラムは基本的に/usr/bin/ffmpeg
を2回呼び出します。最初にコマンドラインで試してみてください!あなたは
echo "<pre>$cmd</pre>"
正確にあなたのPHPスクリプトがやっているものを見つけるし、コマンドラインでその正確なコマンドを試してみることができます。
最初のコマンドは、これはあなたがecho
Sを置く場所です
/usr/bin/ffmpeg -i /var/www/beta/clock.avi 2>&1
次のようになります。あなたが$cmd
を実行したことがないので、それは働いていない
// get the duration and a random place within that
$cmd = "$ffmpeg -i $video 2>&1";
echo "<pre>$cmd</pre>"
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$second = rand(1, ($total - 1));
}
// get the screenshot
$cmd = "$ffmpeg -i $video -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";
echo "<pre>$cmd</pre>"
$return = `$cmd`;
0
まずffmpegの-PHP(http://ffmpeg-php.sourceforge.net/)
をインストールしてから、あなたはこの単純なコードを使用することができます:それは本質的に、あなたの特定のPHPのインストールにリンクされているよう
<?php
$frame = 10;
$movie = 'test.mp4';
$thumbnail = 'thumbnail.png';
$mov = new ffmpeg_movie($movie);
$frame = $mov->getFrame($frame);
if ($frame) {
$gd_image = $frame->toGDImage();
if ($gd_image) {
imagepng($gd_image, $thumbnail);
imagedestroy($gd_image);
echo '<img src="'.$thumbnail.'">';
}
}
?>
関連する問題
- 1. FFmpegとイメージを使ってイメージにテキストを追加するには?
- 2. ffmpegを使ってイメージを丸くするには?
- 3. JSONとPHPを使ってSocialMedia TimeLineを作成するには?
- 4. ffmpegを使ってループapngを作成する
- 5. phpを使って.phpファイルを作成するには?
- 6. PHPを使ってISPConfigにメールIDを作成するには?
- 7. jquery ajaxとphpを使ってイメージをトリミングする方法は?
- 8. PHPを使ってライブストリーミングを作成するには?
- 9. phpを使って '.epub'拡張ファイルを作成するには?
- 10. PHPを使ってvar javascriptを作成するには?
- 11. PHPを使ってホスト.configファイルを作成するには
- 12. PHPを使って非同期ソケットサーバーを作成するには?
- 13. OpenStack SDK - カーネルIDとRamdiskパラメータを使ってイメージを作成する方法は?
- 14. PHPとデータベースを使ってdocファイルを作成して保存するには?
- 15. /dev/loop0を使ってイメージを作成してマウントするには?
- 16. ffmpegとphpを使ってフレーム遷移を実行
- 17. jquery imgAreaSelectを使ってPHPでイメージをトリミングするには?
- 18. ng-repeatとbase64イメージを使って動的にブートストラップカルーセルを作成する
- 19. mysqliとphpを使ってテーブルを作成する
- 20. phpとmysqlを使ってドッカー画像を作成する
- 21. PHPとVBulletinuserシステムを使ってCMSを作成する
- 22. PHPとjQueryを使ってHTMLファイルを作成する
- 23. PHPを使ってRESTfulなAPIとWebサイトを作成する
- 24. phpとdoveadmを使ってパスワードを作成する
- 25. ffmpegとphantomjsを使ってURLからムービーを作る
- 26. イメージ名を使用してテーブルセル内にイメージを作成する
- 27. phpとajaxを使って "自分のステータス"を作成するには?
- 28. phpとmysqlを使って検索結果ページを作成するには?
- 29. mysqlとphpドッカーのコンテナを使ってジェンキンスパイプラインを作成するには
- 30. PHPとhtaccessを使って動的サブドメインを作成するには?
あなたが提供するファイルを事実上無用です。代わりにどのようなエラーや結果が表示されているのかを教えてください。 – zombat
このスクリプトを通して画像は生成されません – webkul