请考虑以下bash
脚本(在Ubuntu 18.04,melt 6.6.0上),该脚本使用melt
制作幻灯片并在窗口(SDL使用者)中本地播放,主要从{ {3}}(编辑:我知道可以像https://mltframework.org/blog/making_nice_slideshows/中那样单独指定文件-但这种方法似乎可以在过渡期间缩放图像,并且需要相当长的时间才能在“ 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
-profile
,也会采用默认值;正确吗?...,视频看起来像这样:
...这表示宽高比不正确;此外,我还能看到锯齿状的边缘,这意味着视频中缩放后的图像没有抗锯齿。
如何使用正确的宽高比和抗锯齿/平滑功能使图像适合视频大小? (我想这与-attach crop center=1
有关,但是我找不到关于它的文档)。
在SDL中查看内容并逐步查看帧时,帧是从0开始编号的,还是从1开始,并且在帧0处仅显示与1相同的帧?
如果我使用ttl=6
和-filter luma cycle=6 duration=4
,我会得到:
...,即可见过渡从帧7开始(帧6是完整图像A),持续到帧7和8,结束于帧9(是完整图像B);然后再次在第13帧和第14帧(第15帧是完整图像A)
但是,如果我使用ttl=6
和-filter luma cycle=6 duration=2
,我会得到:
...即没有过渡,图像在第7帧立即更改,然后在第13帧再次更改,依此类推。
因此,我将第一种情况称为过渡持续时间为2帧,第二种情况称为过渡持续时间为0帧-但选项分别为duration=4
和duration=2
。谁能解释为什么?这两帧差异在哪里?
我可以(如果可以的话)如何进行相同类型的幻灯片显示,除了淡入黑色之外?我想定义每个图像6帧的“生存时间”(ttl),以及4帧的过渡,例如:
...等等
答案 0 :(得分:0)
好吧,所以,我花了一些时间研究melt
的命令,结果发现实际上有一种相当有效的方式来更改一堆图像(如果参数数太长或有太多的话)许多字符供您的终端处理)。
您要做的是使用-serialise <name of file>.melt
来存储命令(您也可以手动创建此文件)。然后,要执行该文件,请使用melt <name of file>.melt
以及视频文件的其他选项。
melt <images and what to do to them> -serialise <name of file>.melt
melt image1.png out=50 image2.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image3.png out=75 -mix 25 -mixer luma image4.png out=75 -mix 25 -mixer luma <...> -serialise test.melt
image1.png
out=50
image2.png
out=75
-mix
25
-mixer
luma
image3.png
out=75
-mix
25
-mixer
luma
image3.png
out=75
-mix
25
-mixer
luma
image4.png
out=75
-mix
25
-mixer
luma
<...>
melt test.melt -profile atsc_1080p_60 -consumer avformat:output.mp4 vcodec=libx264 an=1
熔解文件的末尾应该有一个额外的返回字符。如果没有,将输出Exceeded maximum line length (2048) while reading a melt file.
注意-serialise <name of file>.melt
将不在.melt
文件中
在编码过程开始之前,融解实际上会花费一些时间来加载融化文件