Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not launch, run #71

Closed
markfilipak-windows opened this issue Jun 15, 2024 · 16 comments
Closed

Does not launch, run #71

markfilipak-windows opened this issue Jun 15, 2024 · 16 comments

Comments

@markfilipak-windows
Copy link

I just upgraded java to the latest version, rebooted, and ran 'dvb.bat'. I also ran 'java -version'. Something's wrong but I don't know what. Can you advise me?
--Mark.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\CMD & tiny apps\DVBinspector>dvb

C:\CMD & tiny apps\DVBinspector>set JVM_FLAGS=

C:\CMD & tiny apps\DVBinspector>java -classpath .;.\lib\jfreechart-1.5.3.jar;.\lib\opencsv-5.5.2.jar;.\lib\jlayer-1.0.1.4.jar;.\lib\commons-text-1.9.jar;.\lib\commons-logging-1.2.jar;.\lib\commons-lang3-3.12.0.jar;.\lib\commons-collections4-4.4.jar;.\lib\commons-collections-3.2.2.jar;.\lib\commons-beanutils-1.9.4.jar;.\DVBinspector.jar -Djava.util.logging.config.file=src/main/resources/logging.properties nl.digitalekabeltelevisie.main.DVBinspector
Exception in thread "main" java.lang.UnsupportedClassVersionError: nl/digitalekabeltelevisie/main/DVBinspector has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

C:\CMD & tiny apps\DVBinspector>java -version
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)

@MasterInQuestion
Copy link

    I guess this:
    "DVBinspector has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0"

    Also your pathname maybe problematic: script authors may not properly handle alike.
    (some characters need proper escaping to properly present)

@markfilipak-windows
Copy link
Author

I guess this: "DVBinspector has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0"

Re:
C:\Windows\System32>java -version
java version "1.8.0_411"
Java(TM) SE Runtime Environment (build 1.8.0_411-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.411-b09, mixed mode)

I upgraded yesterday. Is there something more I need to do?

Also your pathname maybe problematic: script authors may not properly handle alike.     (some characters need proper escaping to properly present)

Okay, I'll move to a path with no spaces or '&'. However, I didn't get that far.

@markfilipak-windows
Copy link
Author

markfilipak-windows commented Jun 15, 2024

Okay, I moved 'c:\CMD & tiny apps\DVBinspector\' to 'c:\DVBinspector\'. Same problem.

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\DVBinspector>dvb

C:\DVBinspector>set JVM_FLAGS=

C:\DVBinspector>java -classpath .;.\lib\jfreechart-1.5.3.jar;.\lib\opencsv-5.5.2.jar;.\lib\jlayer-1.0.1.4.jar;.\lib\commons-text-1.9.jar;.\lib\commons-logging-1.2.jar;.
\lib\commons-lang3-3.12.0.jar;.\lib\commons-collections4-4.4.jar;.\lib\commons-collections-3.2.2.jar;.\lib\commons-beanutils-1.9.4.jar;.\DVBinspector.jar  -Djava.util.l
ogging.config.file=src/main/resources/logging.properties nl.digitalekabeltelevisie.main.DVBinspector
Exception in thread "main" java.lang.UnsupportedClassVersionError: nl/digitalekabeltelevisie/main/DVBinspector has been compiled by a more recent version of the Java Ru
ntime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)


I think Oracle may have changed the versioning.

@EricBerendsen
Copy link
Owner

You are using java 1.8. That is a very old version. Oracle is still providing security updates for is, but that doesn't make it the newest version.

You need at least java 17 (or 1.17 they changed the numbering scheme. ). Better to install java 21, because that is also a long term support release. And Dvb Inspector mat be upgrading to java 21 soon.

@MasterInQuestion
Copy link

    Does the latest Java still work with Windows 7..?
    (without the DLL patching havoc)

@markfilipak-windows
Copy link
Author

markfilipak-windows commented Jun 15, 2024 via email

@markfilipak-windows
Copy link
Author

markfilipak-windows commented Jun 15, 2024

Eric, you deserve a prize. Look:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:\DVBinspector>dvb

C:\DVBinspector>set JVM_FLAGS=

C:\DVBinspector>java -classpath .;.\lib\jfreechart-1.5.3.jar;.\lib\opencsv-5.5.2.jar;.\lib\jlayer-1.0.1.4.jar;.\lib\commons-text-1.9.jar;.\lib\commons-logging-1.2.jar;.
\lib\commons-lang3-3.12.0.jar;.\lib\commons-collections4-4.4.jar;.\lib\commons-collections-3.2.2.jar;.\lib\commons-beanutils-1.9.4.jar;.\DVBinspector.jar -Djava.util.l
ogging.config.file=src/main/resources/logging.properties nl.digitalekabeltelevisie.main.DVBinspector

I'm up and running with DVBinspector!

It's nice to see that some things never change: Oracle is as screwed up as ever. ;-D

If you have 10 or 15 minutes, you might want to look at this:
https://trac.ffmpeg.org/ticket/11055
DVBinspector features there, and fixing the bug might revolutionize FFmpeg.

Thank you for your help.
--Mark.

PS: Just curious: Why did you choose to do your project with java?

@markfilipak-windows
Copy link
Author

Regarding https://trac.ffmpeg.org/ticket/11055
It's a Criterion Blu-ray, 4 episodes, an M2TS per episode. I'm trying to trim and splice the 4 episodes together. My packet browser and one part of FFmpeg show my DTSes and PTSes are perfect, exact to the 90kHz tick. Another part of FFmpeg shows gaps and DTS>PTS. VLC & PowerDVD play perfectly but MPV (which uses FFmpeg) pauses at the splice for 2 seconds.

What about your java? The video is DTS-ordered (i.e., physical order is by DTSes) and 100% open GOP. The FFmpeg bug-trac triage specialist, MasterQuestionable, seems surprised. What about DVBinspector? You wrote DVBinspector. Did you anticipate DTS-order, open GOP? The MPEG spec is silent on the physical order of packets: by DTSes or by PTSes. If you care to comment, please do.

@markfilipak-windows
Copy link
Author

Eric, you need to look at this:
https://trac.ffmpeg.org/ticket/11055#comment:59
(I didn't want to cross-post.)

Regards,
Mark.

@EricBerendsen
Copy link
Owner

DVB Inspector was created to inspect Constant BitRate DVB transport streams. It can read other types of transport streams, but then you must be careful with interpreting the results.

The option to read streams with packet size 192 was added because some DVB-PVRs record (partial) transport streams with that packet size. PSI information will still be correct, but bit rates and timings will be wrong. DVB Inspector was never intended to analyse Blu-ray streams.

The PCR/PTS/DTS view assumes a CBR transport stream. Then you will see a nice straight line for the PCR (the red squares) and the DTS/PTS values should all lie above the PCR line, meaning they arrived before their decoding/presentation time. Like this example;

image

When using something else than a CBR stream (like Blu-ray) the graph will look different/wrong. You can not assume the X-axis represents time, it only represents packet numbers.

The 'curvy' line in the Blu ray stream can be explained because of varying bitrates. For a CBR stream the number of packets between PCR ticks will be proportional to the time difference. For VBR streams in a low bitrate section there will be very few packets between ticks. This will give weird results.

@markfilipak-windows
For the missing DTS in the 11055 stream, the PCR (red square) is plotted over the DTS (green triangle) because they have the exact same value 1:33:21.4015 for packet 3;

image

Having the same value sounds suspicious to me, because it means the Access Unit starting in this PES field has to be decoded at the time the PCR reaches this values. So the Field has to be decoded before it has arrived.

You can see this when you deselect the checkbox for PCR;

When PCR is displayed;

image

When PCR is deselected the DTS pops up;

image

I would not know how to prevent two clock values (PCR and DTS) being drawn at the same place, because I have never seen it before.

@MasterInQuestion
Copy link

MasterInQuestion commented Jun 16, 2024

    I do not understand what has the bit rate to do with the presentation timestamps..?
    "CBR": Constant Bit Rate
    "VBR": Variable Bit Rate
    [ Mere typo of VFR (Variable Frame Rate) alike? ]

    "PCR": Program Clock Reference [ MPEG-2 legacy: mostly useless. ]
    "PSI": MPEG-2 Program Specific Information
    "PES": MPEG-2 Packetized Elementary Stream

@MasterInQuestion
Copy link

MasterInQuestion commented Jun 16, 2024

    "The video is DTS-ordered (i.e., physical order is by DTSes) and 100% open GOP."
<^>    After more analysis on actual relevant implementations:
    I find perhaps your statement outright doesn't make sense...

    Current Open GOP implementations mostly involve B-frames:
    Which invariably contradicts the (frame presentation be) DTS-ordered assertion:
    https://trac.ffmpeg.org/ticket/11055#comment:16

@ValeZAA
Copy link

ValeZAA commented Jun 17, 2024

Mere typo of VFR (Variable Frame Rate) alike?

No, VFR and VBR are different. I will quote from https://stackoverflow.com/questions/32354754/how-to-use-timestamps-for-seeking-in-m2ts-files

Since the BDAV format is intended for storage, it uses variable rate (VBR) Transport Streams instead of the typical constant rate (CBR) streams found in broadcast to save space. The arrival time is recorded in order to be able to convert the variable stream into a constant rate and T-STD compliant one for playback.

@MasterInQuestion
Copy link

    Thanks.
    But notice the context.

    The timestamps I mean is "presentation timestamps": not "arrival".
    There shall be no direct connection between presentation timestamps and bit rate.

@markfilipak-windows
Copy link
Author

"The video is DTS-ordered (i.e., physical order is by DTSes) and 100% open GOP." <^> After more analysis on actual relevant implementations: I find perhaps your statement outright doesn't make sense...

How so? I've browsed packets from a couple dozen M2TSes. They were all DTS-ordered. This movie is from Criterion. It is DTS-ordered. And all modern M2TSes appear to be open GOP. Has my thinking gone into the weeds?

Current Open GOP implementations mostly involve B-frames:     Which invariably contradicts the (frame presentation be) DTS-ordered assertion:     https://trac.ffmpeg.org/ticket/11055#comment:16

FFmpeg apparently assigns DTSes to B-frames equal to the B-frames's PTSes. So,
PTS: I B P B I is
DTS: I P B I B.
Isn't it?

@EricBerendsen
Copy link
Owner

This issue started with getting the correct version of java, then I investigated why DVB Inspector did not show DTS. (Because the PTS overlapped it).

I think the rest of the discussion is not relevant for DVB Inspector. Please remember DVB Inspector was never meant for Blu-ray files.

Closing this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants