salsaman / LiVES

LiVES is a feature rich application which combines elements of VJ and video editing software. The current version runs on Linux / BSD. Check_out_the_new_discussion_area https://github.com/salsaman/LiVES/discussions
http://lives-video.com
GNU General Public License v3.0
89 stars 11 forks source link

LiVES freezes at startup #44

Closed bkauler closed 2 years ago

bkauler commented 2 years ago

The photo shows. It freezes on checking mpv for decoding png. The next line, should be checking mpv for jpeg, but has "????" in place of mpv:

lives-startup-freeze

That's it, goes no further and I have to kill the process.

LiVES 3.0.2 works fine, at startup detects mpv does not decode to png, and does decode to jpeg.

salsaman commented 2 years ago

OK, at this point it should be running something like:

LANG=en LANGUAGE=en mpv -vo help | grep -i "image" >/dev/null 2>&1

Can you try this from the commandline and check the result ?

bkauler commented 2 years ago
# mpv -vo help
The legacy option syntax ('-vo value') is deprecated and dangerous.
Please use '--vo=value'.
Available video outputs:
  libmpv           render API for libmpv
  gpu              Shader-based GPU Renderer
  xv               X11/Xv
  x11              X11 (slow, old crap)
  null             Null video output
  image            Write video frames to image files
  tct              true-color terminals

# echo $?
0
# LANG=en LANGUAGE=en mpv -vo help | grep -i "image" >/dev/null 2>&1
# echo $?
0
# mpv --vo=help
Available video outputs:
  libmpv           render API for libmpv
  gpu              Shader-based GPU Renderer
  xv               X11/Xv
  x11              X11 (slow, old crap)
  null             Null video output
  image            Write video frames to image files
  tct              true-color terminals

# echo $?
0
salsaman commented 2 years ago

OK, so it does seem to work, It's currently unclear to me why it should be hanging.

Edit:, right, so it seems to be doing the more thorough test. If you edit /usr/bin/smogrify and uncomment the line $DEBUG_OPEN = 1; then there may be more clues in the terminal.

Note also, support for mpv may not be current, it is preferable to have mplayer installed. Currently this is only used a) to rip audio and subtitle tracks from clips, b) as a fallback for video if none of the decoder plugins can open a clip, c) showing embedded previews in the clip opener, and d) converting (importing) some audio formats which cannot be handled via other methods.

At some point it would be nice to remove this dependency, which would imply - updating all video decoders to rip audio / subs; ignoring files which cant be opened via decoder plugins; implementing previews for unopened clips and embedding the player in the preview window; and using another tool - e.g.sox, for converting exotic audio format - this is quite involved, so for the moment the recommendation is still to have mplayer installed.

Having said that, it is still a bug if mpv causes the app to hang on setup.

bkauler commented 2 years ago

Lives 3.0.2 starts up ok, running on same EasyOS system:

lives302-startup

I compiled 3.0.2 with some patches from debian, and linked with gtk2.

salsaman commented 2 years ago

That is not really helpful, a lot of things have changed since version 3.0.2. It would be challenging to try to track downexactly which set of changes are causing the hang in the current version. The best solution is still to try to pinpoint it using $DEBUG_OPEN.

salsaman commented 2 years ago

As a quick worakaround, you can also try clicking the "Skip" button before it gets to that test.

bkauler commented 2 years ago

OK, with $DEGUG_OPEN=1:

# lives

LiVES 3.2.1-pre
Copyright 2002 - 2021 Gabriel Finch (salsaman+lives@gmail.com) and others.
LiVES comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details.

vid open command for 81122605 is: /usr/bin/mpv -quiet -noconfig all -osdlevel 0 -vo png:z=1 -lavdopts o=threads=4 -fps 1000000.   -noframedrop -nosound "/usr/share/lives/resources/vidtest.avi"  </dev/null
aud open command for 81122605 is: 

It freezes immediately after that last line.

Note, I am running as root.

"Skip" doesn't work, the app is completely frozen. Also, I tried clicking "Skip" before gets to that test, but that also freezes the app.

Running mpv directly:

# /usr/bin/mpv -quiet -noconfig all -osdlevel 0 -vo png:z=1 -lavdopts o=threads=4 -fps 1000000.   -noframedrop -nosound "/usr/share/lives/resources/vidtest.avi"
Error parsing option noconfig (option not found)
Setting commandline option --noconfig= failed.

Exiting... (Fatal error)
#

Why is there "</dev/null" on the end?

# /usr/bin/mpv -quiet -config no all -osdlevel 0 -vo png:z=1 -lavdopts o=threads=4 -fps 1000000.   -noframedrop -nosound "/usr/share/lives/resources/vidtest.avi"
Warning: option --osdlevel was replaced with --osd-level and might be removed in the future.
The legacy option syntax ('-osdlevel value') is deprecated and dangerous.
Please use '--osdlevel=value'.
The legacy option syntax ('-vo value') is deprecated and dangerous.
Please use '--vo=value'.
Option vo: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option vo (option parameter could not be parsed)
Setting commandline option --vo=png:z=1 failed.

Exiting... (Fatal error)
#
salsaman commented 2 years ago

Fix pushed 67f79fdb2e6b5ac38c945285b2d476b32dc8b3c7

bkauler commented 2 years ago

Yes, success, starts up OK.