PHPでflvファイルを操作してスクリーンショットを取得する方法
この記事では主に、PHP を使用して FLV ファイルのスクリーンショットを取得する方法を紹介します。必要な友人は参考にしてください。
# この記事の例では、PHP が FLV ファイルからビデオ プレビューを取得する方法を説明します。具体的な実装方法は次のとおりです。 コードは次のとおりです。<?php // references http://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile- // generate a preview image from an FLV file on-the-fly, or to save // call with: ffmpeg_image.php?file=video.flv&time=00:00:05&browser=true // call with: ffmpeg_image.php?file=video.flv&percent=75.3&browser=true // no time defaults to "00:00:01" (one second), no browser defaults to "true" $videofile = (isset($_GET['file'])) ? strval($_GET['file']) : 'video.flv'; $image = substr($videofile, 0, strlen($videofile) - 4); $time = (isset($_GET['time'])) ? strval($_GET['time']) : '00:00:01'; // debug (" File: ", $videofile); // debug (" Image: ", $image); // debug (" Time: ", $time); // check time format if (!preg_match('/\d\d:\d\d:\d\d/', $time)) { $time = "00:00:00"; } if (isset($_GET['percent'])) { $percent = $_GET['percent']; // debug (" Percent: ", $percent); ob_start(); exec("/usr/bin/ffmpeg -i \"". $videofile . "\" 2>&1"); $duration = ob_get_contents(); ob_end_clean(); // debug ("Duration: ", $duration); preg_match('/Duration: (.*?),/', $duration, $matches); $duration = $matches[1]; // debug ("Duration: ", $duration); $duration_array = split(':', $duration); $duration = $duration_array[0] * 3600 + $duration_array[1] * 60 + $duration_array[2]; $time = $duration * $percent / 100; // debug (" Time: ", $time); $time = intval($time/3600) . ":" . intval(($time-(intval($time/3600)*3600))/60) . ":" . sprintf("%01.3f", ($time-(intval($time/60)*60))); // debug (" Time: ", $time); } $browser = (isset($_GET['browser'])) ? strval($_GET['browser']) : 'true'; // debug (" Browser: ", $browser); if ($browser == "true") { header('Content-Type: image/png'); exec("/usr/bin/ffmpeg -vcodec png -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 -"); //header('Content-Type: image/jpeg'); //exec("/usr/bin/ffmpeg -vcodec mjpeg -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 -"); } else { exec("/usr/bin/ffmpeg -vcodec png -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 \"" . $image . "\"%d.png"); //exec("/usr/bin/ffmpeg -vcodec mjpeg -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 \"" . $image . "\"%d.jpg"); } ?>
概要: 以上がこの記事の全内容です。みんなの学習に役立ちます。
関連する推奨事項:PHP の static キーワード、遅延バインディング、self の定義key 単語の違い
以上がPHPでflvファイルを操作してスクリーンショットを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Stock Market GPT
AIを活用した投資調査により賢明な意思決定を実現

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

Singleton Patternは、クラスに1つのインスタンスしかないことを保証し、単一のオブジェクトがデータベース接続や構成管理などのシステムの動作を調整するシナリオのグローバルアクセスポイントを提供します。 2。その基本構造には、プライベート静的属性ストレージインスタンス、プライベートコンストラクターが外部の作成を防ぎ、プライベートクローニング方法がコピーを防止し、インスタンスを取得するためのpublic staticメソッド(getInstance()など)が含まれます。 3. getInstance()メソッドを呼び出してPHPで一意のインスタンスを取得し、何回呼び出されても同じオブジェクト参照を返します。 4.標準のPHPリクエストモデルでは、スレッドの安全性を考慮する必要はありませんが、同期の問題は長期的またはマルチスレッド環境で注意を払う必要があり、PHP自体はネイティブロックメカニズムをサポートしていません。 5。シングルトンは便利ですが、

回答:PHPの空のマージ演算子(??)は、変数キーまたは配列キーが存在し、nullではないかどうかを確認するために使用されます。それが本当なら、それはその値を返し、それ以外の場合はデフォルト値を返します。長いISSET()チェックの使用を回避し、$ username = $ userInput ?? 'guest'などの未定義の変数や配列キーの処理に適しています。

Interfaceを実装するには、Implementsキーワードを使用すると、クラスはインターフェイス内のすべてのメソッドの特定の実装を提供する必要があります。 2。インターフェイスを定義して、インターフェイスキーワードを使用してメソッドを宣言します。 3。クラスはインターフェイスを実装し、メソッドをオーバーライドします。 4.オブジェクトを作成し、メソッドを呼び出して結果を出力します。 5.クラスは複数のインターフェイスを実装して、コードの仕様と保守性を確保することができます。

topreventxssinphp、sanitizeuserininputandescapeoutput basedoncontextusinghtmlspecialchars()forhtml、json_encode()forjavascript、andvalidattlywithfilter_var()forexectedDatatypes

GETメソッドは、非敏感な情報に適したURLにデータを添付します。 POSTメソッドは、リクエスト本体を介してデータを送信します。これは、より安全で機密情報に適しています。

自動ビデオ再生を実現するには、ビデオをミュートする必要があります。 AutoplayとMutedプロパティを使用して、HTMLビデオが最新のブラウザで自動的に再生されるようにします。ループを再生したい場合は、ループ属性を追加できます。コントロールを削除した場合、コントロールバーは表示されません。

array_intersect()関数を使用して、各配列に存在する要素を同時に返す2つの配列の交差点を見つけ、キー名は最初の配列から保持されます。たとえば、$ arr1 = ['apple'、 'banana'、 'orange']; $ arr2 = ['banana'、 'kiwi'、 'apple'];結果は['apple'、 'banana']です。

setthededefaultimezoneinphpusingdate_default_timezone_set( 'americ/new_york');
