I'm trying to edit 60i VHS footage and I usually use QTGMC deinterlacing but I'm curious and I wanted to try having the video output as 60i, not 60p. Why? I don't know.
I've tried
SeparateFields()
Weave()
but it seems to give me a 30p image with combing artifacts.
I also tried DoubleWeave() but does give me a 60p output, also with combing artifacts.
Is there any way to output 60i with Avisynth or FFMpeg or something? Thanks!
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 1 to 30 of 37
Thread
-
-
(assuming the content is interlaced and not telecined)
If your footage is already 60i and you don't deinterlace it, your output should also be 60i when using avisynth.
Also just using:
Code:SeparateFields() Weave()
Code:AssumeBFF() SeparateFields() SelectEvery(4,1,2) # SelectEvery(4,0,3) for bottom field first Weave()
Cu Selurusers currently on my ignore list: deadrats, Stears555 -
60i and 30i are the same thing: 30 interlaced frames per second, to be viewed as 60 fields per second. Marketing just gave it a new name.
-
How do you differentiate '15p -> interlaced', '30p -> interlaced' and '60p -> interlaced' if they are the same to you?
I know that some folks call 30i what others call 60i, but shouldn't they still differ if you either use one of the other way ? (30i: some define it as 30 fields per seconds and others define it as 30 frames per second interlaced)users currently on my ignore list: deadrats, Stears555 -
It's not for some reason. I'm using AVSPmod so I don't know if thats the issue.
both didn't work. it's outputting a 15fps file. output file and what its supposed to look like are attached.
Here's my script.
Code:AVISource("D:\virtualdub\tape transfers\old tony hawk gameplay from 2014-1.avi", atrack=0) AssumeTFF() SeparateFields() SelectEvery(4,1,2) Weave() Crop(43, 3, -38, -4) Spline64Resize(640,480) Deblock SMDegrain Trim(508, 26136) Trim(0, 219)
-
You're trying to edit 30i VHS footage. You're just confusing yourself. Why would the number used (30 in this case) have referred to frames for decades and all of a sudden refer to fields when the footage is interlaced? By your way of thinking 30p is 30 progressive frames per second but 60i is 60 interlaced fields per second? But fields aren't even interlaced so how can it be 60i? Non-intuitive and inconsistent. And very confusing. And a waste of a thread.
-
I've always considered interlaced footage as 50/60i. My apologies.
If that's the case then I'm trying to edit 30i VHS footage and want to output 30i with Avisynth/AVSPmod/FFMpeg I guess? Or let's just say I'm editing interlaced VHS footage and I want to output interlaced. Hope it makes it sound a bit simpler.Last edited by ENunn; 15th Aug 2019 at 23:32.
-
If it's already interlaced, how is what you want to accomplish any different? Are you saying you want to filter this interlaced footage and have it remain interlaced afterwards, realizing that a lot of filtering can't be done with interlaced footage? If so, bob it, filter it, reinterlace it. Maybe something like this:
AssumeTFF()
Yadif(Mode=1)###or QTGMC or whatever bobber you like
####Filter(s) here###
SeparateFields()
SelectEvery(4,0,3)
Weave()
If BFF, some of the lines change. -
I was wondering if that would make the quality worse because its reinterlacing something thats been deinterlaced but I didn't notice anything.
Nevertheless, it's still not playing back right even if I force deinterlacing on MPC-HC.
I'm not too stressed out about it. Just wanted to see if I could output a file that maintains smoothness while keeping the video interlaced. -
If your source is interlaced content, just using AVISource only should work . Provided your VFW decoder (used with AVISource) isn't deinterlacing .
If it doesn't playback correctly - It might be that you're not encoding it interlaced correctly, or not flagging field order correctly
It should be 29.97i . The frame rate is 29.97. The field rate is 59.94 . When it's deinterlaced upon playback by your media player , or display, you get 59.94p
"dc-correct framerate.mp4 " looks correct for 480p59.94 - so your source is probably ok . I "reversed" the process and made it interlaced, then encoded it interlaced TFF . That's what you should be getting with AVISource() directly from a NTSC interlaced source. If you playback tff.mp4 and activate yadif2x or bob in VLC, or MPCHC, it should look like 60p, even though it's 29.97i
That's correct if you were previewing the image in avspmod . You're supposed to see combing if there is motion, and the framerate should be 29.97 . It's 2 fields, taken at different points in time, superimposed but offset into 1 frame. -
-
What flags did you set for ffmpeg? I tried using "-r 59.94 -flags +ilme+ildct -top 0", "-r 59.94 -flags +ilme+ildct -top 1", and "-r 59.94 -flags +ilme+ildct -top -1" plus the SelectEvery changes that manono recommended for Avisynth and it's still not playing back right.
I'm having that herky-jerky back-and-forth stuff. -
I used x264 there, but it's really the same thing
-r 60 is incorrect in ffmpeg . You want 29.97
If your avisynth script is correct (just AVISource only, and it's decoding correctly), it should already be sending 29.97 fps . Forcing -r in ffmpeg just causes problems if there is a discrepancy in declared input frame rate
Code:AVISource("your avi file...")
The equivalent ffmpeg command would be (no audio in this example) for TFF (change it to bff=1 if it's BFF)
Code:ffmpeg -i input.avs -vf setsar=sar=10/11 -c:v libx264 -crf 18 -flags +ildct+ilme -x264opts tff=1 -an output.mp4
-
You have the wrong field order before deinterlacing. Change AssumeTFF() to AssumeBFF(). An interlaced frame of video contains two fields (two separate half pictures) that are supposed to be separately and sequentially. If you view them in the wrong temporal order you get fast-jerky video -- two steps forward, one step back, two steps forward, one step back...
In your original script the first part, SeparateFields().SelectEvery(4,1,2).Weave(), reduced the frame rate of your source by half. So a 30 interlaced frames per second video became 15 interlaced frames per second. Then the video had every frame repeated for a total of four times to make it 60 fps.
Also note that editiors/encoders/players generally can't tell if the output of an AviSynth script is progressive or interlaced, they assume progressive. You have to tell the program the frames are interlaced if you want it handled properly.Last edited by jagabo; 16th Aug 2019 at 09:08.
-
Got that.
Alright, got that taken out.
I know my source is top field first so I had AssumeTFF() and changed the SelectEvery() to 4,0,9.
It's still jumpy but its a bit better than before. No combing artifacts.
Here's my ffmpeg command
Code:ffmpeg -i "D:\AviSynth+ Deinterlace\Scripts\avisource\interlace test.avs" -c:v libx264 -preset ultrafast -crf 14 -flags +ilme+ildct -x264opts tff=1 "D:\AviSynth+ Deinterlace\output\output-interlace test.mp4"
-
You can trim out a section without reencoding. Open the source in VirtualDub. Set Video -> Direct Stream Copy. Mark-in, Mark-out (select about 5 seconds with constant motion -- a panning shot, for example). Then File -> Save As AVI.
-
-
The video is definitely TFF. The script given by manono in post #8 outputs a TFF video. Note that using SelectEvery(4,1,2) instead would reverse the field order. The last ffmpeg command line in post #14 delivers an mp4 file that's flagged interlaced TFF, and contains interlaced TFF frames, but plays oddly in MPCBE. On the monitor I'm using here it looks like double exposures but it's probably fast-jerky. If I use the x264 CLI encoder (mkv file attached, video only) it looks fine -- glassy smooth motion.
x264 options:
Code:--preset=ultrafast --tff --crf=18 --keyint=60 --sar=10:11 --colormatrix=smpte170m
Last edited by jagabo; 16th Aug 2019 at 12:59.
-
I think I got it: add "-top 1" to the flags.
Code:ffmpeg -i "D:\AviSynth+ Deinterlace\Scripts\avisource\interlace test.avs" -c:v libx264 -preset ultrafast -crf 14 -flags +ilme+ildct -top 1 -x264opts tff=1 "D:\AviSynth+ Deinterlace\output\output-interlace test.mp4"
-
Interesting - I can reproduce the playback issue in mpchc with lav . But the frames/fields look encoded correctly looking at it field by field but for some reason do not playback correctly in realtime in some players (plays ok in potplayer). The -x264opts tff=1 setting isn't even required . The important flag for ffmpeg here is -top 1 . There is actually a filesize difference (few bytes) . I assumed it was a direct translation of x264 cli , but it's not -
Thanks for the suggestions but it's still jerky. I really don't know how. I have AssumeTFF(), SelectEvery set to (4,0,9) and used the exact command line that jagabo (with and without -x263opts tff=1) posted but it's still not working well. File is attached. Not sure what I'm doing wrong. Could it be the mp4 container?
-
I must be losing my mind lol
I changed it to (4,0,3). That's what I should use, right?
Output's still jerky. -
Don't use SelectEvery at all
Just the source filter
(and if encoding with ffmpeg , use -top 1) -
Post your entire script whenever you have problems. And your ffmpeg command line.
-
Here you go. Since poison said to not use SeparateEvery(), I've also removed QTGMC, not sure if that makes a difference.
Code:AVISource("D:\virtualdub\tape transfers\old tony hawk gameplay from 2014-1.avi", atrack=0) AssumeTFF() Crop(43, 3, -38, -4) Spline64Resize(640,480) Deblock() SMDegrain() SeparateFields() Weave() Trim(0, 1453) Trim(1015, 1453)
Code:ffmpeg -i "D:\AviSynth+ Deinterlace\Scripts\avisource\interlace test.avs" -c:v libx264 -preset ultrafast -crf 14 -flags +ilme+ildct -top 1 "D:\AviSynth+ Deinterlace\output\output-interlace test.mp4"
-
The weirdness is form applying SMDegrain (temporal denoising, a progressive filter) while you are still in fields
You can bob deinterlace (like QTGMC) then apply progressive filter, then re-interlace . Or use interlaced aware filters. Or separate fields, and group even/odd fields, then reweave (but you don't get denoising between even/odd). But if you don't group even/odd fields, there will be slight errors because of the field offset
What is your avi ? The one you uploaded is 4:2:2, but cropping by 43 left, top 3 suggest you have RGB or 4:4:4 source . Or maybe your source filter is not deocding correctly ? Also there are interlaced cropping restrictions for 4:2:2
Similar Threads
-
Blu-Ray 1080 50i to 1080 60i
By andy jackson in forum Newbie / General discussionsReplies: 5Last Post: 15th Aug 2018, 14:19 -
Which is better: 60i deinterlaced or 30p?
By SameSelf in forum Video ConversionReplies: 8Last Post: 30th Jun 2016, 12:31 -
FFMPEG convert 60p to 60i
By nesburf in forum Video ConversionReplies: 7Last Post: 27th Feb 2016, 15:32 -
AVISynth 24p to 60i Telecine
By jelockwood in forum Video ConversionReplies: 1Last Post: 17th Nov 2015, 11:05 -
Restoring Ghosty 60i to 24p?
By tygerbug in forum RestorationReplies: 3Last Post: 24th Aug 2014, 07:10