連結された画像スライドショーの隅にファイル名の透かしを焼き付けて、画像ごとに変更することは可能ですか?


1

やりたいこと:たくさんの画像が入ったフォルダがあります。これらのファイルを使用して、スライドショービデオを作成し、元の各画像のファイル名を右下隅に焼き付けます。

現在の状態.jpgフォルダー内のすべてのファイルを取得してffmpeg-readableリストを作成するスクリプトを作成し、画像をスライドショーに連結する方法を知っています。すべてが意図したとおりに機能します。また、FFmpegのドローテキストを使用してハンサムなファイル名スタンプを取得する方法も考えました。

問題:現在、FFmpegはファイルリスト(IMG_9935.jpgなど)から最後のファイル名を取得し、ビデオ全体に書き込みます。しかし、私が実現したいのは、「新しい」画像ごとに変化することです-ビデオの過程でタイムコードが変化するように。

これは可能ですか?

副次的注意として:「なぜファイル名を事前に焼かないのですか?」可能な限り柔軟に保ちたい。それで、もし別の方法があるなら、私はそのように行きたいです。

for i in *.jpg; do echo "file '$i'" >> files.txt; done

ffmpeg -r 1/3 -f concat -safe 0 -i files.txt -vf
"eq=text=$(echo $i | rev | cut -d / -f 1 | rev): fontcolor=0x808080:
fontsize=14: x=w-tw- 10:y=h-th-10" -c libx264 filename.mp4

回答:


1

concat demuxerでは、ファイルごとのメタデータエントリを設定できますが、これは手動で行う必要があります。

スクリプトを次のように変更します

for i in *.jpg; do echo "file '$i'" >> files.txt; echo "file_packet_metadata url=$i" >> files.txt; done

ffmpeg -r 1/3 -f concat -safe 0 -i files.txt -vf
"drawtext=text='%{metadata\:url}': fontcolor=0x808080:
fontsize=14: x=w-tw- 10:y=h-th-10" -r 12 -c:v libx264 filename.mp4
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.