ImageMagickとffmpegを使用して、NGINX経由でビデオからスクリーンショットを取得します
最近では、新しいモジュール
nginx-video-thumbextractor-moduleリンクとして公開したかったのですが、ご覧のとおり、トピックリンクはありません。 そして、翻訳がギャグを追加するのにもはや適切でないこと。
いずれにせよ、この素晴らしいモジュールをKhabrovchanと共有する価値があると思います。
ステータスは、彼が生産の準備ができていることを示しており、非常に満足しています。
依存関係:
- avformat-通常FFmpegで配布されます(ただし、libavformat-devをUbuntuにインストールする必要がありました)
- avcodec-通常はffmpegで配布されます
- swscale-通常はFFmpegで配布されます(ただし、libswscale-devをUbuntuにインストールする必要がありました)
- jpeg-libjpeg
- MagickWand-通常ImageMagickと共に配布されます
構成/コンパイル時にモジュールを追加します::
./configure --add-module=../nginx-video-thumbextractor-module --with-cc-opt='-I /usr/include/ImageMagick'
推奨事項:
デフォルトでは、ImageMagickはOpenMPを使用して画像をストリーミングします。
ワークフロー内でストリーム処理を使用することはお勧めできませんので、著者は、オプション「-disable-openmp」を使用してImageMagickを構成/コンパイルすることをお勧めします。
構成:
location ~ /thumbs(.*) { video_thumbextractor; video_thumbextractor_video_filename $1; video_thumbextractor_video_second $arg_second; video_thumbextractor_image_width $arg_width; video_thumbextractor_image_height $arg_height; }
上記の構成の使用例:
#元のサイズの10秒から画像を取得します。
localhost / thumbs / video.mp4?second = 10#ビデオのプロポーションを観察して、20秒から画像を取得し、高さ50ピクセル、長さを取得します。
localhost / thumbs / video.mp4?second = 10&height = 50#高さ50ピクセル、ちらつき100ピクセルの30秒から画像を取得します。画像はビデオの割合に応じてトリミングされます。
localhost / thumbs / video.mp4?second = 20&height = 50&width = 100モジュールページのディレクティブを見て
ください 。
これは、ポスターを追加するためにHTMLビデオを公開する人にとって素晴らしいソリューションだと思います。
<video controls="controls" poster="http://localhost/thumbs/movie.mp4?second=10"> <source src="movie.mp4" type="video/mp4" /> Your browser does not support the video tag. </video>
また、コメントするときは、しばらく時間を参照して、YouTubeで一定の時間のリンクのような画像を取得します。