I am doing a transfer job for my family, of a bunch of Digital8 tapes. They range pretty wildly in date, from 2001 to 2006, and I would like it if every time is transitioned to a new day, a datestamp would appear in the bottom right or left of the video for a few seconds, indicating the day of filming.
The video was imported with WinDV, and I'm using AviSynth+ MT 64-bit version. It would be great if there was an extension I could use which could do this automatically, but if I need to insert the datestamps manually at certain frames, I suppose I could do that if someone told me how, haha.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 7 of 7
Thread
-
-
you'll pretty much have to make your own. it's easy to make srt subs. use notepad or another text editor. the format is.
sub # - 1,2,3,etc.
time - 00:00:10,000 –> 00:00:20,500 (Hour, Minutes, Seconds, Milliseconds)
text - what you want displayed
followed be a blank line in between each sub
as in
1
00:00:10,000 –> 00:00:20,500
date - 10/08/1998
2
00:00:57,000 -> 00:01:07,250
date - 11-12-1998
etc.
save as .srt with the same file as your video - name.avi and name.srt
send both srt and video together or use mkvtoolnix to mux them into a single mkv file.--
"a lot of people are better dead" - prisoner KSC2-303 -
There is an old avisynth 2.5 plugin called DVInfo that can read the embedded recording date information . I just tested it on some DV files and it works ok in avisynth 2.6 or avisynth+ 3.2 x64 with mp_pipeline. It would save time from manually creating them. You can toggle them on/off over sections by using remapframes or trim or similar methods
https://forum.doom9.org/showthread.php?t=61688
The last post has a live link to the newest version
https://forum.doom9.org/showthread.php?p=1740824#post1740824 -
Alright, I found 2 plugins that seem to be able to do what I want - the DVInfo you mentioned, and DVTimeStampEx. Both of them seem to be 32-bit plugins. I don't really know how to use this MP_Pipeline thing, I downloaded 0.22, and according to the text in the readme.md I put the 64-bit dll in the plugins64+ folder, and the 32-bit .dll in the plugins+ folder. Trying to read the included .avs file to understand all the functions is like trying to read Hebrew.
I'm also not aware of the remapframes or trim function. Sorry, I'm still an absolute newb at AviSynth and really have no prior coding experience, and there's not really a definitive resource explaining how AviSynth works in good detail - even their own wiki is just vaguely helpful at explaining the broadest workings of it.
My current script looks like this:
Code:SetFilterMTMode("QTGMC", 2) FFmpegSource2("dv-source.avi", atrack=1) ConvertToYV12() AssumeBFF() QTGMC(preset="Slower",EdiThreads=2) Spline64Resize(960,720) TemporalDegrain2(grainLevel=True) Prefetch(6)
I was only using TemporalDegrain2 because it was available for 64-bit, but if MP_Pipeline enables the use of 32-bit plugins, I would like to switch to SMDegrain as well as using one of these datestamping plugins, since TemporalDegrain2 is not very useful at all in removing the video noise. It would also be nice to choose the font and color of the datestamp, but I don't know if either plugin supports that. I guess I'll take what I can get. -
For a x64 avs+ host, you would use the 4 files in the unzipped mp_pipeline x64 folder . Copy/post them to the plugins folder to autoload . For most people that would be the plugins64+ folder. There are slightly different setups people have for avisynth+ (slightly different folder organization or names)
The unzipped mp_pipeline x86 folder is for x86 host (using x64 plugins in a x86 host) . Same thing there, 4 files into the x86 plugins folder
I should mention that you need both avisynth versions to be working for mp_pipeline. For this old .dll the x86 version relies on old 2.5. header, so the avisynth x86 version must be 2.6 (classic or MT) installed, not avisynth+ x86. It's as simple as switching the avisynth.dll in the Windows\SysWOW64 directory for avisynth x86.
EDIT: apparently you can load different versions of avisynth.dll's in the mp_pipeline blocks
### dll: avisynth.dll
# you can use a different version of avisynth to run script block, just specify path to the avisynth dll like the line above
I'm also not aware of the remapframes or trim function. Sorry, I'm still an absolute newb at AviSynth and really have no prior coding experience, and there's not really a definitive resource explaining how AviSynth works in good detail - even their own wiki is just vaguely helpful at explaining the broadest workings of it.
Code:My current script looks like this:
Code:SetFilterMTMode("QTGMC", 2) FFmpegSource2("dv-source.avi", atrack=1) ConvertToYV12() AssumeBFF() QTGMC(preset="Slower",EdiThreads=2) Spline64Resize(960,720) TemporalDegrain2(grainLevel=True) Prefetch(6)
You enclose x64 or x86 segments in section like this. eg. This would "sandwich" an x86 filter inbetween 2 x64 filters . Everything is enclosed in MP_Pipeline(""" and """)
Code:MP_Pipeline(""" ### platform: win64 #your x64 filter here ### ### ### platform: win32 #your x86 filter here ### ### ### platform: win64 #your x64 filter here ### ### """)
It will take some planning for where the ideal place for stamping is, because if you do it earlier, QTGMC will deinterlace it (QTGMC is good, but there is potential for some artifacts when stuff moves "underneath", it can confuse motion vectors). It might be better to overlay onto alpha channel clip, then overlay that at the end , I'll think about it
I was only using TemporalDegrain2 because it was available for 64-bit, but if MP_Pipeline enables the use of 32-bit plugins, I would like to switch to SMDegrain as well as using one of these datestamping plugins, since TemporalDegrain2 is not very useful at all in removing the video noise. It would also be nice to choose the font and color of the datestamp, but I don't know if either plugin supports that. I guess I'll take what I can get.
I don't understand - SMDegrain works with x64 natively
Dvinfo supports font,color, position options
Code:DVInfo (clip, string "filename", string "output", int "x", int "y", string "font", int "size", int "text_color", int "halo_color", string "rec_format", string "tc_format", bool "show_error", float "threshold", int "autoframes", string "fix_format")
EDIT: yes the default top left position has significant artifacts when stuff moves underneath. If you set QTGMC(border=true), it will reduce the amount of artifacts (this is one of the "shortcut" settings different than it's precursor tempgaussmc_beta )
Something like this works
Code:MP_Pipeline(""" ### platform: win32 LoadPlugin("PATH\dvinfo.dll") FFVideoSource("PATH\Video.avi") ConvertToYV12(interlaced=true) DVInfo("PATH\Video.avi") ### ### ### platform: win64 AssumeBFF() QTGMC(preset="Slower",EdiThreads=2, border=true) SMDegrain() Spline64Resize(960,720) ### ### """)
Last edited by poisondeathray; 20th Dec 2020 at 19:50.
-
The external .dll load method works if you have an incompatible avisynth x86 version installed. Do not use quotation marks for the path. It would look like this
### dll: PATH\avisynth.dll
A clean mask "msk" is generated by using the same plugin (to prevent QTGMC interfering with the overlay) , by setting one instance of the color and the halo outline color to white, then expanding that to full range Y (a full black,white 0,255) . The second instance "d" is the one you change for color and halo color. If you change parameters like font, x,y position, size, etc... you must do the same for both lines; just don't change the colors for the mask layer
The remapframes syntax is given in the documentation. You enter the frames to replace in your clean version with the overlaid version. In the example below 100 to 150, 300 to 350, 600 to 700 inclusive would have the overlay. You can use an editor like avspmod to preview and make adjustments. Each carriage return has an entry.
It's a slow script with very low CPU% usage. You can try fiddling with the internal branch and prefetch parameters to speed it up. External prefetch almost always slows things down and causes thread thrashing. If it were me, I would run multiple instances in parallel
Code:MP_Pipeline(""" ### platform: win64 FFVideoSource("PATH\Video.avi") ConvertToYV12(interlaced=true) AssumeBFF() a=last b=blankclip(a) a QTGMC(preset="Slower",EdiThreads=2) SMDegrain() bg=last ### export clip: b,bg ### ### ### platform: win32 ### dll: PATH\avisynth.dll LoadPlugin("PATH\dvinfo.dll") msk = b.DVInfo("PATH\Video.avi", text_color=$FFFFFF, halo_color=$FFFFFF).levels(16,1,235,0,255,false).changefps(b.framerate*2) #mask clip, full range Y, changefps for double rate to match QTGMC double rate d = b.DVInfo("PATH\Video.avi").changefps(b.framerate*2)#overlay clip, use whatever colors, changefps for double rate to match QTGMC double rate ### export clip: d,msk ### pass clip: bg ### ### ### platform: win64 date = mt_merge(bg, d, msk, luma=true) RemapFrames(bg, mappings="[100 150] [100 150] [300 350] [300 350] [600 700] [600 700]", sourceclip=date) Spline64Resize(960,720) """)
Similar Threads
-
Embed captioning into video file
By palengh in forum SubtitleReplies: 6Last Post: 19th Sep 2017, 13:17 -
How to embed subtitles permanently?
By Querorz in forum SubtitleReplies: 5Last Post: 28th May 2017, 01:24 -
Avanti FFmpeg how to embed audio to video source
By brassaag in forum Video ConversionReplies: 1Last Post: 2nd Feb 2017, 19:37 -
How to embed m3u8 Stream?
By umarimtiaz11 in forum Video Streaming DownloadingReplies: 3Last Post: 21st Apr 2016, 19:43 -
Can't Embed Flv (flash Video). All I Get Is Blank White Space.
By Bruce Wayne in forum Video ConversionReplies: 8Last Post: 5th Feb 2016, 01:05