Hi all - Don't know if this is the best forum section for this . . .
I used this avisynth script to use 16 different pngs to create the effect of scrolling text. A function CreditScroll is created which uses the Animate filter [http://avisynth.org/mediawiki/Animate] to "scroll" each png which is overlayed onto a blank clip. I used a word processor to create the text - then did a 640x480 capture of each text page to separate 640x480 pngs - I then "inverted" each image to make white text on black background
function CreditScroll(string file, int "numSecs", int "vidWidth", int "vidHeight")
{
fps = 24000/1001.0
numSecs = default(numSecs, 10)
numFrames = int(numSecs * fps)
vidWidth = 640
vidHeight = 480
credits = ImageSource(file, end=numFrames-1, pixel_type="RGB32")
Animate(0, numFrames-1, "spline64resize", credits, vidWidth, vidHeight, 0.0, -vidHeight, vidWidth, vidHeight, credits, vidWidth, vidHeight, 0.0, credits.height, vidWidth, vidHeight)
}
vidWidth = 640
vidHeight = 480
numSecs = 10
myfps=(24000.0/1001.0)
image1 = "C:\1.png"
image2 = "C:\2.png"
image3 = "C:\3.png"
image4 = "C:\4.png"
image5 = "C:\5.png"
image6 = "C:\6.png"
image7 = "C:\7.png"
image8 = "C:\8.png"
image9 = "C:\9.png"
image10 = "C:\10.png"
image11 = "C:\11.png"
image12 = "C:\12.png"
image13 = "C:\13.png"
image14 = "C:\14.png"
image15 = "C:\15.png"
image16 = "C:\16.png"
blankclip(240,fps=myfps,vidWidth,vidHeight)
credits = CreditScroll(image1, numSecs, vidWidth,vidHeight)
a=overlay(credits)
credits = CreditScroll(image2, numSecs, vidWidth, vidHeight)
b=overlay(credits)
credits = CreditScroll(image3, numSecs, vidWidth, vidHeight)
c=overlay(credits)
credits = CreditScroll(image4, numSecs, vidWidth,vidHeight)
d=overlay(credits)
credits = CreditScroll(image5, numSecs, vidWidth,vidHeight)
e=overlay(credits)
credits = CreditScroll(image6, numSecs, vidWidth,vidHeight)
f=overlay(credits)
credits = CreditScroll(image7, numSecs, vidWidth,vidHeight)
g=overlay(credits)
credits = CreditScroll(image8, numSecs, vidWidth, vidHeight)
h=overlay(credits)
credits = CreditScroll(image9, numSecs, vidWidth, vidHeight)
i=overlay(credits)
credits = CreditScroll(image10, numSecs, vidWidth,vidHeight)
j=overlay(credits)
credits = CreditScroll(image11, numSecs, vidWidth,vidHeight)
k=overlay(credits)
credits = CreditScroll(image12, numSecs, vidWidth,vidHeight)
l=overlay(credits)
credits = CreditScroll(image13, numSecs, vidWidth, vidHeight)
m=overlay(credits)
credits = CreditScroll(image14, numSecs, vidWidth,vidHeight)
n=overlay(credits)
credits = CreditScroll(image15, numSecs, vidWidth,vidHeight)
o=overlay(credits)
credits = CreditScroll(image16, numSecs, vidWidth,vidHeight)
p=overlay(credits)
vid=a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p
vid
converttoyv12(interlaced=false).bilinearresize(720 ,480)
I used Quenc to create the .m2v file with 3:2 pulldown then muxed the ac3 audio with Muxman to create the sample DVD
Don't know if I should have used 29.970 without pulldown or not.
Here is a sample png [reduced to 2 colors] - the originals are 24bit
If anyone is interested in the final product I have uploaded a .rar file [32.8 MB] to MediaFire that contains
.m2v, .ac3, 16 pngs, two avisynth scripts, a sample DVD, and a sample 640x480 xvid clip
http://www.mediafire.com/download.php?6icww1wxgsj2e6d
+ Reply to Thread
Results 1 to 7 of 7
-
-
Made some changes to my script as I did not like the output on my TV
1. Best to keep the text black on white and use invert() in the avisynth script to get white letters on black background
2. I also added tweak(0,1,14,0.86,coring=true) to get the range of 16-235
3. Used ImageReader() instead of ImageSource
4. And I used HCEnc for the .m2v encoding
Here's the new script - that will work with black text on white background:
function CreditScroll(string file, int "numSecs", int "vidWidth", int "vidHeight")
{
fps = 30000.0/1001.0
numSecs = default(numSecs, 10)
numFrames = int(numSecs * fps)
vidWidth = 640
vidHeight = 480
credits = ImageReader(file, end=numFrames, pixel_type="RGB32")
Animate(0, numFrames, "spline64resize", credits, vidWidth, vidHeight, 0.0, -vidHeight, vidWidth, vidHeight, credits, vidWidth, vidHeight, 0.0, credits.height, vidWidth, vidHeight)
}
vidWidth = 640
vidHeight = 480
numSecs = 10
myfps=(30000.0/1001.0)
image1 = "C:\image1.png"
image2 = "C:\image2.png"
image3 = "C:\image3.png"
image4 = "C:\image4.png"
image5 = "C:\image5.png"
image6 = "C:\image6.png"
image7 = "C:\image7.png"
image8 = "C:\image8.png"
image9 = "C:\image9.png"
image10 = "C:\image10.png"
image11 = "C:\image11.png"
image12 = "C:\image12.png"
image13 = "C:\image13.png"
image14 = "C:\image14.png"
image15 = "C:\image15.png"
image16 = "C:\image16.png"
blankclip(300,fps=myfps,vidWidth,vidHeight)
credits = CreditScroll(image1, numSecs, vidWidth,vidHeight)
a=layer(credits)
credits = CreditScroll(image2, numSecs, vidWidth, vidHeight)
b=layer(credits)
credits = CreditScroll(image3, numSecs, vidWidth, vidHeight)
c=layer(credits)
credits = CreditScroll(image4, numSecs, vidWidth,vidHeight)
d=layer(credits)
credits = CreditScroll(image5, numSecs, vidWidth,vidHeight)
e=layer(credits)
credits = CreditScroll(image6, numSecs, vidWidth,vidHeight)
f=layer(credits)
credits = CreditScroll(image7, numSecs, vidWidth,vidHeight)
g=layer(credits)
credits = CreditScroll(image8, numSecs, vidWidth, vidHeight)
h=layer(credits)
credits = CreditScroll(image9, numSecs, vidWidth, vidHeight)
i=layer(credits)
credits = CreditScroll(image10, numSecs, vidWidth,vidHeight)
j=layer(credits)
credits = CreditScroll(image11, numSecs, vidWidth,vidHeight)
k=layer(credits)
credits = CreditScroll(image12, numSecs, vidWidth,vidHeight)
l=layer(credits)
credits = CreditScroll(image13, numSecs, vidWidth, vidHeight)
m=layer(credits)
credits = CreditScroll(image14, numSecs, vidWidth,vidHeight)
n=layer(credits)
credits = CreditScroll(image15, numSecs, vidWidth,vidHeight)
o=layer(credits)
credits = CreditScroll(image16, numSecs, vidWidth,vidHeight)
p=layer(credits)
vid=a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p
vid.converttoyuy2()
tweak(0,1,14,0.86,coring=true).bilinearresize(720, 480).invert() -
Nice work. But anyone with a CRT will get horrible flickering with that small un-antialiased text. Even many progressive displays will flicker if you encode that interlaced. It would be better to use larger antialiased text with thicker strokes.
-
Thanks for the input jagabo
I did another test, this time using 20 pt and 24 pt Arial Narrow [Although I think I will ultimately use Tahoma font]
Looks way better - no flickering and no "chroma noise" on my old SD TV
The credits do look a bit big but they are certainly readable - unlike a lot of commercial DVD's I've seen -
Another possibility would be to start with much bigger graphics and reduce their size with a bilinear filter in the script. That would give you text more like you see on a typical DVD.
Now you need to do the Star Wars mod with the text flying off into the distance... -
Here's a .rar file with a 20 sec xvid 640x480 avi and a 20 sec DVD
I used 40pt Tahoma font antialias strong for the Normal text and antialias smooth for the Bold Text
Original .png is 1290x960
Here's the link -> http://www.mediafire.com/download.php?37bq31ip79c2h12 = 3.28 MB
It would be nice to know how this looks on other Monitors and TVs - TIA
... I'd like to figure out how to do that Star Wars thing -
Here's a .rar file with a scrolling 640x1920 image [from a jpg]
-> DVD folder and 640x480.avi
http://www.mediafire.com/download.php?urh6x4ljtqhss91
and just the 640x480.avi
http://www.mediafire.com/download.php?0kckxcshwevl0be
Similar Threads
-
Using AVISynth to overlay PNG subtitles?
By csdesigns in forum SubtitleReplies: 8Last Post: 3rd Feb 2012, 11:36 -
How can I have mpg with scrolling text?
By RBCC in forum Newbie / General discussionsReplies: 7Last Post: 25th Jan 2012, 04:48 -
Create your own movie titles/credits, transitions & effects in Linux.
By Mountain Man in forum LinuxReplies: 4Last Post: 17th Nov 2009, 16:12 -
How to create text effect like names on intro in CSI:Miami
By Northpole in forum EditingReplies: 11Last Post: 2nd Nov 2009, 13:24 -
removing scrolling text from videos
By planetx in forum EditingReplies: 5Last Post: 27th Dec 2007, 03:53