ffmpeg を使用して、それが実行可能であると仮定すると、入力ビデオをある形式から別の形式 (MPEG-2 から MPEG-4 など) に変換し、同時に n秒ごとにサムネイルを生成するにはどうすればよいですか?
よろしく、マット
ffmpeg を使用して、それが実行可能であると仮定すると、入力ビデオをある形式から別の形式 (MPEG-2 から MPEG-4 など) に変換し、同時に n秒ごとにサムネイルを生成するにはどうすればよいですか?
よろしく、マット
このコマンドは、.flv を取り込み、.webm および .mp4 にトランスコードし、同時に単一のサムネイルを生成します。
ffmpeg -y -threads '1' -i 'in.flv' \
-map '0:v' -map '0:a' -c:v 'libx264' -c:a 'libvo_aacenc' out.mp4 \
-map '0:v' -map '0:a' -c:v 'libvpx' -c:a 'libvorbis' out.webm \
-map '0:v' -r '1' -t '1' 'out.png'
n 秒ごとにサムネイルを生成するには、-r (フレームレート) を n の逆数に変更し、-t を削除します (サムネイルがビデオの最後まで取得されるようにします)。たとえば、4 秒ごとにサムネイルを生成するには、1/4 のフレームレートが必要です。
ffmpeg -y -threads '1' -i 'in.flv' \
-map '0:v' -map '0:a' -c:v 'libx264' -c:a 'libvo_aacenc' out.mp4 \
-map '0:v' -map '0:a' -c:v 'libvpx' -c:a 'libvorbis' out.webm \
-map '0:v' -r '1/4' 'out-%d.png'
gstreamer を見てみましょう。パイプの各段階でデータにアクセスできます。したがって、 MPEG-4 を MPEG-2 に変換するには、次のようにします。
filesrc | decodebin | tee | jpegencode | filesink(thumbnail) tee | mpeg2enocde | filesink(mpeg2 file)
gstreamer パイプラインの正確な要素を検索してください。