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

"Why does the outline range of fonts in Shotcut span from 0 to 200, while in MLT, the range is only from 0 to 3? Is there any solution?" #976

Closed
wfd2022 opened this issue Mar 18, 2024 · 6 comments
Milestone

Comments

@wfd2022
Copy link

wfd2022 commented Mar 18, 2024

image
image

@ddennedy
Copy link
Member

ddennedy commented Mar 18, 2024

There is no maximum in reality except numerical limit, but Shotcut has limit to keep the user from doing something probably insane. It is wrong to include a maximum for this parameter in metadata/docs.
Solution to what?

@wfd2022
Copy link
Author

wfd2022 commented Mar 18, 2024

There is no maximum in reality except numerical limit, but Shotcut has limit to keep the user from doing something probably insane. It is wrong to include a maximum for this parameter in metadata/docs. Solution to what?

The maximum value is the official documentation content. I have tried setting the outline in MLT, but once it exceeds 3, it becomes ineffective, whereas in Shotcut, it can be set up to 200. How can I make the outline in MLT have a larger setting range like in Shotcut?

@ddennedy
Copy link
Member

The dyanamictext filter uses either the qtext or text filter to generate the text. The text filter uses either the qtext or pango (GDK) producer to generate the text. Which one it chooses depends on your build of MLT. If it includes Qt, qtext is used; otherwise, pango is used. It is the pango producer that has this maximum of 3 because pango does not include outline drawing, and MLT's code does the drawing with this maximum. Qt does not have this maximum. So, the solution is to ensure the MLT qt or qt6 module is built and working.

@ddennedy ddennedy added this to the v7.24.0 milestone Mar 18, 2024
@wfd2022
Copy link
Author

wfd2022 commented Mar 18, 2024

The dyanamictext filter uses either the qtext or text filter to generate the text. The text filter uses either the qtext or pango (GDK) producer to generate the text. Which one it chooses depends on your build of MLT. If it includes Qt, qtext is used; otherwise, pango is used. It is the pango producer that has this maximum of 3 because pango does not include outline drawing, and MLT's code does the drawing with this maximum. Qt does not have this maximum. So, the solution is to ensure the MLT qt or qt6 module is built and working.

Thank you very much for your response. I found that Qt6 was missing during compilation. However, after recompiling and testing the command 'melt short.mp4 -attach dynamictext:argument="Your Dynamic" olcolour="red" outline=10 size=100 -consumer avformat:output.mp4', I still observe that the outline effect remains limited to 3. Below is the cmake information, and most of the dependencies have been installed. Is there any problem?
image
image
image
image

@ddennedy
Copy link
Member

I believe that the Qt 6 module is building for you, but that it is not working. You need to pay attention to the text output of melt to look for errors and maybe use -verbose to get more info. There might be a runtime problem with your Qt 6 installation. I tested your command line, and it is working for me (outline=10 is thicker than outline=3). If you are trying to use a headless (no screen) system, then Qt will not initialize, and melt will show an error message like:

                          "The MLT Qt module requires a X11 or Wayland environment.\n"
                          "Please either run melt from a session with a display server or use a "
                          "fake X server like xvfb:\n"
                          "xvfb-run -a melt (...)\n");

You can try using the melt that comes with Shotcut on your desktop system to verify that your command line works.
Also, you can make a test using the qtext producer directly to verify it works:
melt -verbose qtext text=hello

@wfd2022
Copy link
Author

wfd2022 commented Mar 18, 2024

I believe that the Qt 6 module is building for you, but that it is not working. You need to pay attention to the text output of melt to look for errors and maybe use -verbose to get more info. There might be a runtime problem with your Qt 6 installation. I tested your command line, and it is working for me (outline=10 is thicker than outline=3). If you are trying to use a headless (no screen) system, then Qt will not initialize, and melt will show an error message like:

                          "The MLT Qt module requires a X11 or Wayland environment.\n"
                          "Please either run melt from a session with a display server or use a "
                          "fake X server like xvfb:\n"
                          "xvfb-run -a melt (...)\n");

You can try using the melt that comes with Shotcut on your desktop system to verify that your command line works. Also, you can make a test using the qtext producer directly to verify it works: melt -verbose qtext text=hello

"I solved the problem a few hours ago following your suggestion, exactly as you mentioned. I want to express my special thanks for your patient assistance."

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

2 participants