3

次のbashスクリプト (Ubuntu 18.04 では、melt 6.6.0) を検討してください。これは、スライドショーを作成し、ウィンドウ (SDL コンシューマー) でローカルに再生するために使用されます。ほとんどはhttps://mltframework.org/blog/making_nice_slideshows/meltからコピーされています(編集: https://superuser.com/questions/833232/create-video-with-5-images-with-fadein-out-effect-in-ffmpeg/834035#のようにファイルを個別に指定できることは承知しています。 834035 - しかし、このアプローチはトランジション中に画像をスケーリングするように見え、SDL ウィンドウで再生する前に「レンダリング」するのにかなりの時間がかかりますが、これはほぼ瞬時に再生されます):

echo "
description=DV PAL
frame_rate_num=25
frame_rate_den=1
width=720
height=576
progressive=0
sample_aspect_num=59
sample_aspect_den=54
display_aspect_num=4
display_aspect_den=3
colorspace=601
" > my-melt.profile

mkdir tmppics
convert -background lightblue -fill blue -size 3840x2160  -pointsize 200  -gravity center label:"Test A" tmppics/pic_01.jpg
convert -background lightblue -fill blue -size 3840x2160  -pointsize 200  -gravity center label:"Test B" tmppics/pic_02.jpg

melt -verbose -profile ./my-melt.profile \
./tmppics/.all.jpg ttl=6 \
-attach crop center=1 \
-filter luma cycle=6 duration=4 \
-consumer sdl
  • 上記のコマンドを実行すると、ビデオは 2 つの画像のループを示しますが、フレーム カウンターは無限に増加し続けます。ループが長いフレームの正確な量の後に停止するにはどうすればよいですか?
  • 私の知る限り、出力ビデオのサイズはプロファイルによって制御されます。つまり、 を指定しなくても-profile、デフォルトのものが想定されます。あれは正しいですか?
  • 元の画像は次のようになります。

pic01_eog

...そしてビデオは次のようになります。

pic01_melt

...これは、アスペクト比が間違っていることを意味します。さらに、ギザギザのエッジが表示されます。これは、ビデオのスケーリングされた画像がアンチエイリアス処理されていないことを意味します。

アンチエイリアシング/スムージングを使用して、正しいアスペクト比で画像をビデオ サイズに合わせるにはどうすればよいですか? (私はそれが関係していると思いますが-attach crop center=1、それに関するドキュメントは見つかりませんでした)。

  • SDL で内容を表示してフレームをステップ実行する場合、フレームの番号は 0 ベースですか、それとも 1 ベースで、フレーム 0 には 1 と同じフレームが表示されますか?

  • と を使用するttl=6-filter luma cycle=6 duration=4、次のようになります。

Melt01-opt.gif

...つまり、目に見えるトランジションはフレーム 7 (フレーム 6 は完全な画像 A) で始まり、フレーム 7 と 8 の間続き、フレーム 9 (完全な画像 B) で終わります。次に、フレーム 13 と 14 で再び (フレーム 15 は完全な画像 A)

ただし、 and を使用するttl=6-filter luma cycle=6 duration=2、次のようになります。

Melt02-opt.gif

...つまり、トランジションはなく、画像はフレーム 7 で即座に変化し、次にフレーム 13 で再び変化します。

したがって、最初のケースを 2 フレームの遷移期間、2 番目のケースを 0 フレームの期間と呼びますが、オプションはそれぞれduration=4duration=2です。誰でも理由を説明できますか?これらの 2 つのフレームの違いはどこに消えたのでしょうか?

  • フェード トゥ ブラックを除いて、同じ種類のスライドショーを行うことはできますか? 次のように、画像ごとに 6 フレームの "time to live" (ttl) と 4 フレームのトランジションを定義したいと思います。

    • 最初に、画像 A の 4 つのフレームが表示されます。
    • 次に、1 フレームの画像 A がフェードし、1 フレームの黒が続きます (画像 A の 6 フレーム TTL、最後の 2 つの遷移)。
    • 次に、2 つのフレームの画像 B がフェードし (前の 2 つのフレームとの 4 フレームの遷移に相当)、さらに 2 つのフレームの画像 B がフルになります (ここでは画像 B の 4 フレーム)。
    • 次に、1 フレームの画像 B がフェードし、1 フレームの黒が続きます (画像 B の 6 フレーム TTL に相当します)。

...など

  • meltを使用する代わりに、グロビングを使用してスライドショー用の画像を選択するように説得することは可能.all.jpgですか? MLT (Media Lovin' Toolkit) フォト スライド ビデオを見る限りではありません - しかし、別のアプローチがあるかもしれません...
4

1 に答える 1