カメラはさまざまなシナリオで広く使用されています。ライブ放送や写真の撮影に加えて、タイムラプスビデオの録音も非常に興味深い目的です。タイムラプスビデオは、より低いフレームレートで連続した写真を再生することにより、タイムアクセラレーションの視覚効果を提示できます。この記事では、PHPを使用してカメラを呼び出し、タイムラプスビデオを録音し、生成する方法を詳細に紹介します。
まず、カメラが適切に接続され、構成されていることを確認してください。 Linux Systemsでは、コマンドラインツールを介してカメラデバイスが利用可能かどうかを確認できます。次のコマンドを使用して、システム上の利用可能なカメラを表示します。
ls -l /dev /video*
「/dev/video0」に類似したデバイス名が出力に表示される場合、カメラが正常に接続されていることを意味します。デバイスが見つからない場合は、ハードウェア接続を確認して、ドライバーが正しくインストールされていることを確認してください。
PHPでカメラを呼び出す前に、FFMPEGやFSWEBCAMなどの必要なソフトウェアパッケージをインストールする必要があります。これらのツールは、写真をキャプチャし、ビデオに合成するのに役立ちます。次のコマンドを使用してインストールできます。
sudo apt-getインストールffmpeg fswebcam
次に、カメラを呼び出してタイムラプスビデオを記録するためにPHPコードを書きます。 PHPは、shell_exec関数を介してコマンドライン操作を実行し、写真を撮り、ビデオを合成します。これが簡単なコードの例です。
<?php // 時間間隔を設定し、フレームの総数を記録します $interval = 1; // 他のすべて1数秒で写真を撮ります $total_frames = 60; // 総射撃60写真 // 写真を保存するディレクトリを定義します $photos_dir = '/path/to/photos'; // 実際のパスに置き換えます // 写真を保存するディレクトリを作成します if (!is_dir($photos_dir)) { mkdir($photos_dir, 0755, true); } // ループで写真を撮ります for ($i = 1; $i <= $total_frames; $i++) { $photo_file = $photos_dir . '/photo' . $i . '.jpg'; // 画像ファイル名 $command = 'fswebcam -r 640x480 --no-banner ' . $photo_file; // 写真を撮るためにカメラに電話してください shell_exec($command); sleep($interval); // 指定された時間間隔を待ちます } // 写真を時間に合成します-lapseビデオ $video_file = '/path/to/video.mp4'; // 実際のパスに置き換えます $command = 'ffmpeg -framerate 24 -pattern_type glob -i "' . $photos_dir . '/*.jpg" -c:v libx264 -pix_fmt yuv420p ' . $video_file; shell_exec($command); // 撮影した写真を削除します array_map('unlink', glob($photos_dir . '/*.jpg')); rmdir($photos_dir); ?>
上記のコードでは、撮影間隔と合計フレームカウントが最初に設定されます。次に、FSWEBCAMコマンドを使用して写真を撮り、指定されたフォルダーに保存します。撮影が完了したら、FFMPEGコマンドを使用して、写真をタイムラプスビデオに合成し、指定された場所に保存します。最後に、一時的な生成された写真をクリーンアップしました。
上記のコードをPHPファイルとして保存し、実際のパスへのパスを置き換えます。その後、ブラウザまたはコマンドラインを介してPHPファイルを実行して、タイムラプスビデオの撮影を開始します。
PHPを介してタイムラプスビデオを記録するためにカメラを呼び出すことは、サンセット、雲、植物の成長など、ゆっくりと変化する一連のシーンを簡単に記録する非常にシンプルで効率的な方法です。このチュートリアルがこの機能の実装に役立つことを願っています。問題が発生した場合は、関連情報を常に確認したり、技術フォーラムでヘルプを求めたりすることができます。