Giter VIP home page Giter VIP logo

Comments (15)

Anime4000 avatar Anime4000 commented on September 17, 2024

Upon checking MediaInfo Wrapper: https://github.com/Anime4000/IFME/blob/master/ifme.framework/MediaInfoDotNet/Models/MultiStreamCommon.cs#L408

This code I added manually, I tried a DVD ripped to MKV (MakeMKV) it detect as expected as in my end.

Another code I added: https://github.com/Anime4000/IFME/blob/master/ifme.framework/MediaInfoDotNet/Models/MultiStreamCommon.cs#L395

This allow returning Top or Bottom Fields, allowing FFmpeg deinterlaced before sending to x265, I split each fileds into different frame, become double fps it's original, this test file I have on my disk, I capture FIFA 2014 via TV card and convert. 25fps become 50fps, smooth animation.

since interlaced video operate in constant frame rate, I not sure with variable framerate interlaced video, so far I didn't find any kind VFR interlaced video. mostly analouge TV run in CFR.

I using -vsync passthrough let copy frame without droping or adding frame, this allow VFR video converted to VFR at the end, letting FFms indexing VFR video,

if partial frame encoded, try see ffprobe to detect. if MediaInfo and FFprobe return same value, yes... I need adjust -vsync properly...

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

This issue has been fixed since version 4.9.3 🎉

from ifme.

DarkShadow44 avatar DarkShadow44 commented on September 17, 2024

Well, I just updated to 4.9.3 and still have the same problems. :/

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

Variable Frame-rate I set to -vsync 0 it cause copy frame without modifying total of frame,
https://github.com/Anime4000/IFME/blob/master/ifme/frmMain.cs#L1570
https://ffmpeg.org/ffmpeg.html#Advanced-options

If can, can you send the file to me? using Google Drive or any cloud based service.

from ifme.

SailorOnDaTea avatar SailorOnDaTea commented on September 17, 2024

does this work if I directly reply to this email?

maybe it should behave like windows themes. when you change anything on it without saving, it creates an unsaved theme and switches to it. then leaves the rest untoched. as long as you don't save it manually it keeps writing on this unsaved profile like autosave.
I think that this "Changes applied in realtime" behavior is much more like Linux. but is useful like autosave on games.

--- Original Message ---

From: "Anime4000" [email protected]
Sent: March 8, 2015 6:47 AM
To: "Anime4000/IFME" [email protected]
Subject: Re: [IFME] mkv videos and variable frame rate (#13)

Variable Frame-rate I set to -vsync 0 it cause copy frame without modifying total of frame,
https://github.com/Anime4000/IFME/blob/master/ifme/frmMain.cs#L1570
https://ffmpeg.org/ffmpeg.html#Advanced-options

If can, can you send the file to me? using Google Drive or any cloud based service.


Reply to this email directly or view it on GitHub:
#13 (comment)

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

@SailorOnDaTea it's works 😄 by replying email, settings saved when closing form/application exit.
@DarkShadow44 said using -vsync vfr works with VFR video, but I tried -vsync -1 (passthrough) works too, I using mp4 file from my camera phone.

Ok, I try again using -vsync vfr without timecodes.txt I hope it's works.

from ifme.

DarkShadow44 avatar DarkShadow44 commented on September 17, 2024

I made a demo video to show the issue and uploaded it to mediafire: testVideo.mkv
Just download and convert with IFME, on veryfast is good enough.

The video is basically just a number that gets counted up, the last number that's displayed is 2000.
If encoded it stops at ~11:18, the last 8 seconds are dropped and the last displayed number is 1976.

The amount of frames that is dropped seems random, but this should be enough to show where the problem is.

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

Later I at home, I test it 👍
Let see current ffmpeg detect and decode, all based on FFmpeg, if FFmpeg stop, x265 also stop.

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

ifme detect fps

FFprobe did not detect total frame, while MediaInfo detect under 29.97 fps and 30.303fps (original)

AVIDEMUX... hmmm

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

OK, I done some temporary patch,
on my end, it display all frame ➿
try this: https://github.com/Anime4000/IFME/releases/tag/v4.9.3.1

you may override or make backup ifme.exe and ifme.framework.dll

from ifme.

DarkShadow44 avatar DarkShadow44 commented on September 17, 2024

Doesn't work for me either.
I found the following information, and think that explains the problem fairly well: GitHub - mkvtoolnix - Wrong frame rate displayed
It seems that MKV container just don't care about frame rate, so tools like Mediainfo try to guess it. In my case wrong, which causes the video to get messed up.
In your temporary patch, you wrote about a fix for CFR video, but my video isn't constant frame rate. I know, MediaInfo says it is, but it isn't. If you put the video steam into a different container (simply mux it into MP4 for example), then you see it is VFR. And because MediaInfo interprets it wrong, it can't get encoded the right way - VFR video treated like CFR it will probably go wrong. But I can't think of another way than always to use timestamps if working with MKV. Because as I said, MKV simply doesn't care about framerate and I don't know any way to extract it from the video stream.

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

well, FFprobe and MediaInfo detect that file as CFR with Original FPS,
to get VFR video, it need and to have timecodes.txt file.

I test so many VFR video including from AMD GE (Game DVR), Digial Camera and Smart Phone, most of them using VFR to save space.

as you say, if container put wrong info, it become wrong when pass info to IFME.

from ifme.

SailorOnDaTea avatar SailorOnDaTea commented on September 17, 2024

Okay looks like if the input doesn't report specifically or missing some information then program simply takes it as CFR. You said in order to detect it you would need some metafile like timecodes.txt but it is not always available right?

This is similar to my previous problem with broken mpeg streams. If we assumed input as perfect then converting didn't work. We needed to analyze/recheck stream to workaround. Simply a more flexible/forgiving ifme could get it done. it was its weakness to be strict but improved it later. Maybe in case of VFR it is better to approach in a similar way.

I think this is like antivirus software. When it has predefined data/definitions it can compare and deal with already recognized files but when there is no information? Heuristic scan! In past antivirus couldn't catch such files but now they block it with heuristic method even if they are not in database.

Is it pissible to detect if video is CFR or VFR this way?

--- Original Message ---

From: "Anime4000" [email protected]
Sent: March 10, 2015 1:29 AM
To: "Anime4000/IFME" [email protected]
Cc: "SailorOnDaTea" [email protected]
Subject: Re: [IFME] mkv videos and variable frame rate (#13)

well, FFprobe and MediaInfo detect that file as CFR with Original FPS,
to get VFR video, it need and to have timecodes.txt file.

I test so many VFR video including from AMD GE (Game DVR), Digial Camera and Smart Phone, most of them using VFR to save space.

as you say, if container put wrong info, it become wrong when pass info to IFME.


Reply to this email directly or view it on GitHub:
#13 (comment)

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

Once you lose some info about VFR (lose timecodes.txt) you cannot make it work without timecodes.txt, even FFmpeg detect it as CFR because metadata set to CFR.

VFR video very unature on some device like SmartTV, CFR are preferable.
VFR is one way to save disk space, for example:

30 second of contain one scene, VFR only contain one frame, CFR duplicate it and tell next frame refer to previous.

from ifme.

Anime4000 avatar Anime4000 commented on September 17, 2024

IFME Go (v5.x) VFR support natively, but it taking time to indexing first just like x264 ffms

from ifme.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.