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

[question] Any hints on how to cross-compile for rpi4 #275

Open
gui-lux opened this issue Apr 22, 2023 · 48 comments
Open

[question] Any hints on how to cross-compile for rpi4 #275

gui-lux opened this issue Apr 22, 2023 · 48 comments

Comments

@gui-lux
Copy link

gui-lux commented Apr 22, 2023

Hi,
just curious, I'd love to see how veejay is running on rpi.
I don't even know if it's possible and not sure at all how I would proceed.

From my non-existent knowledge into this, I understand I need to install gcc-10-arm-linux-gnueabihf or something similar, install all dependencies on the rpi4 and that's all I know.
I'm running debian on an x86_64 host and my rpi4 runs diet-pi, a nice debian derivative.

Many thanks if you have ideas !

@game-stop
Copy link
Owner

Did you try this on rpi4 ?

@gui-lux
Copy link
Author

gui-lux commented Sep 3, 2023

Hi,
no, didn't try, because I can't figure out clearly the steps to achieve this.
Still open to suggestions : )

@game-stop
Copy link
Owner

The same as usual. If there is any error that stops the configure or build process, just let me know.

$ sh autogen.sh
$ ./configure
$ make
$ make install

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

I tried several months ago, can't remember clearly the error.
It was something architecture related, some -MARCH parameter maybe...

Currently backing up the rpi and I get back to you.

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

There it is, at the ./configure step and I don't know what to do here :


checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown

@game-stop
Copy link
Owner

Okay, I added the definitions for aarch64 architecture. You can try again ( and we take the next problem )

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

Just the same output from a fresh clone I'm afraid :

checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown

@game-stop
Copy link
Owner

Updated the rule to match against aarch64* , that should do it.

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

Fresh clone and same output.
Pasting anyway, just in case.

checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown

@game-stop
Copy link
Owner

Updated the configure script to output a more informative error, can you try again ? It will still fail.

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

About the same

checking size of int... 4
checking size of long int... 8
checking size of size_t... 8
checking size of float... 4
checking for library containing clock_gettime... none required
checking return type of signal handlers... void
configure: The host is aarch64-unknown-linux-gnu  aarch64  unknown  linux-gnu .
checking linux/version.h usability... yes
checking linux/version.h presence... yes
checking for linux/version.h... yes
configure: The PKG_CONFIG_PATH variable was not set
configure: You should set it to the directories that contain the .pc files
checking whether to compile in debugging information... no
checking whether to compile in profiling information... no
checking whether to compile in assertion checking... no
no
checking whether to compile in vevo port tracking... no
checking Architecture... configure: error: unknown

@game-stop
Copy link
Owner

Did you run autogen.sh ? The error I was expecting here is 'unknown arch' instead of 'unknown'

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

Output from autogen.sh :

dietpi@x3800:~/compilation/veejay/veejay-current/veejay-core$ ./autogen.sh 
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4 --force -I m4 
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in '.'.
libtoolize: copying file './ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
libtoolize: copying file 'm4/libtool.m4'
libtoolize: copying file 'm4/ltoptions.m4'
libtoolize: copying file 'm4/ltsugar.m4'
libtoolize: copying file 'm4/ltversion.m4'
libtoolize: copying file 'm4/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --include=m4 --force
autoreconf: running: /usr/bin/autoheader --include=m4 --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:76: installing './compile'
configure.ac:15: installing './config.guess'
configure.ac:15: installing './config.sub'
configure.ac:19: installing './install-sh'
configure.ac:19: installing './missing'
Makefile.am: installing './INSTALL'
libvevo/Makefile.am: installing './depcomp'
autoreconf: Leaving directory `.'

And as expected, ./configure output is the same.

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

Just to make sure, do I need any extra deps on rpi or not ?

@game-stop
Copy link
Owner

No, no extra deps are needed. I pushed changes to all configure.ac scripts now

@gui-lux
Copy link
Author

gui-lux commented Sep 4, 2023

Well, autoconf and configure went fine.
It fails when building veejay-core :

libtool: link: ar cr .libs/libmjpegutils.a .libs/mjpeg_logging.o .libs/mpegconsts.o .libs/mpegtimecode.o .libs/yuv4mpeg.o .libs/yuv4mpeg_ratio.o 
libtool: link: ranlib .libs/libmjpegutils.a
libtool: link: ( cd ".libs" && rm -f "libmjpegutils.la" && ln -s "../libmjpegutils.la" "libmjpegutils.la" )
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/mjpegtools »
Making all in fastarm
make[3] : on entre dans le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
depbase=`echo new_arm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB     -MT new_arm.lo -MD -MP -MF $depbase.Tpo -c -o new_arm.lo new_arm.S &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB -MT new_arm.lo -MD -MP -MF .deps/new_arm.Tpo -c new_arm.S  -fPIC -DPIC -o .libs/new_arm.o
gcc: error: unrecognized command-line option ‘-mthumb’
gcc: error: unrecognized command-line option ‘-mthumb-interwork’
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2

@game-stop
Copy link
Owner

Okay, I changed the configure.ac scripts and removed the -mthumb -mthumb-interwork for this architecture.

@game-stop
Copy link
Owner

Also, please share the output of

$ cat /proc/cpuinfo

to see what optimizations can be enabled to speed up operations like memcpy, subsample, supersample, convert etc

@gui-lux
Copy link
Author

gui-lux commented Sep 5, 2023

root@x3800:~# cat /proc/cpuinfo 
processor       : 0
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 1
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 2
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

processor       : 3
BogoMIPS        : 108.00
Features        : fp asimd evtstrm crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x0
CPU part        : 0xd08
CPU revision    : 3

Hardware        : BCM2835
Revision        : c03114
Serial          : 10000000243c58e3
Model           : Raspberry Pi 4 Model B Rev 1.4

My lunch break is ending, more to come later. : )

@gui-lux
Copy link
Author

gui-lux commented Sep 5, 2023

libtool: link: ar cr .libs/libmjpegutils.a .libs/mjpeg_logging.o .libs/mpegconsts.o .libs/mpegtimecode.o .libs/yuv4mpeg.o .libs/yuv4mpeg_ratio.o 
libtool: link: ranlib .libs/libmjpegutils.a
libtool: link: ( cd ".libs" && rm -f "libmjpegutils.la" && ln -s "../libmjpegutils.la" "libmjpegutils.la" )
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/mjpegtools »
Making all in fastarm
make[3] : on entre dans le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
depbase=`echo new_arm.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/bash ../../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB     -MT new_arm.lo -MD -MP -MF $depbase.Tpo -c -o new_arm.lo new_arm.S &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/local/include -I../../thirdparty -march=armv8-a+crc -Wa, -mthumb -Wa,-mthumb -Wa,-mimplicit-it=always -mthumb-interwork -DCONFIG_THUMB -MT new_arm.lo -MD -MP -MF .deps/new_arm.Tpo -c new_arm.S  -fPIC -DPIC -o .libs/new_arm.o
gcc: error: unrecognized command-line option ‘-mthumb’
gcc: error: unrecognized command-line option ‘-mthumb-interwork’
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2

From a fresh clone

@game-stop
Copy link
Owner

Can you send the config.h file that is created after running ./configure ? Updates have been pushed to veejay-core configure.ac script

@gui-lux
Copy link
Author

gui-lux commented Sep 5, 2023

config.h.txt

@gui-lux
Copy link
Author

gui-lux commented Sep 5, 2023

huge output when building veejay-core :

new_arm.S:1855: Erreur: mnémonique inconnue « strge » — « strge r1,[r0,#4] »
new_arm.S:1855: Erreur: mnémonique inconnue « addge » — « addge r0,r0,#8 »
new_arm.S:1855: Erreur: mnémonique inconnue « subge » — « subge r2,r2,#8 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#4 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r3,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « sub r2,r2,#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « strble » — « strble r1,[r0] »
new_arm.S:1855: Erreur: mnémonique inconnue « strble » — « strble r1,[r0,#1] »
new_arm.S:1855: Erreur: mnémonique inconnue « addle » — « addle r0,r0,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « add r2,r2,r3 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbne » — « strbne r1,[r0],#1 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#2 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbge » — « strbge r1,[r0] »
new_arm.S:1855: Erreur: mnémonique inconnue « strbge » — « strbge r1,[r0,#1] »
new_arm.S:1855: Erreur: mnémonique inconnue « addge » — « addge r0,r0,#2 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « tst r2,#1 »
new_arm.S:1855: Erreur: mnémonique inconnue « strbne » — « strbne r1,[r0] »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « mov r0,ip »
new_arm.S:1855: Erreur: mnémonique inconnue « bx » — « bx lr »
new_arm.S:1855: Erreur: mnémonique inconnue « pop » — « pop {r4} »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « mov r0,ip »
new_arm.S:1855: Erreur: mnémonique inconnue « bx » — « bx lr »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer register — « tst r0,#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « strne » — « strne r1,[r0],#4 »
new_arm.S:1855: Erreur: mnémonique inconnue « subne » — « subne r2,r2,#4 »
new_arm.S:1855: Erreur: l'opérande 1 doit être an integer or stack pointer register — « cmp r2,#16 »
new_arm.S:1855: Erreur: mnémonique inconnue « poplt » — « poplt {r4} »
new_arm.S:1488: Erreur: symbole non défini ip utilisé comme valeur immédiate
new_arm.S:1500: Erreur: symbole non défini ip utilisé comme valeur immédiate
make[3]: *** [Makefile:446 : new_arm.lo] Erreur 1
make[3] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty/fastarm »
make[2]: *** [Makefile:405 : all-recursive] Erreur 1
make[2] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core/thirdparty »
make[1]: *** [Makefile:539 : all-recursive] Erreur 1
make[1] : on quitte le répertoire « /home/dietpi/compilation/veejay/veejay-current/veejay-core »
make: *** [Makefile:448 : all] Erreur 2

Sorry for so much French
Won't touch anything now, let me know if you need any file(s) related to this output.

@game-stop
Copy link
Owner

Yes, the first error that happens will be the most useful. You can redirect stderr to a file, this leaves just the errors. However, most likely your platform can't support the assembly included by new_arm.S and it needs to be excluded from the build when your platform is targeted.

@game-stop
Copy link
Owner

game-stop commented Sep 5, 2023

Can you run the following C program ?

#include <arm_neon.h>
      int main() {
        uint8x8_t v = vdup_n_u8(1);
        return 0
     } 

$ gcc -march=armv8-a+crc -mfpu=neon -o test test.c && ./test

$ gcc -march=native -o test test.c && ./test

$ gcc -march=armv8-a+crc -o test test.c && ./test

This will test for a SIMD NEON instruction. One of the gcc commands should compile and run with exit code 0

@game-stop
Copy link
Owner

game-stop commented Sep 6, 2023

Please try building veejay-core from https://github.com/game-stop/veejay/tree/arm8 and send me the output from configure & make

@gui-lux
Copy link
Author

gui-lux commented Sep 6, 2023

errors while building veejay-core :
make.txt

@gui-lux
Copy link
Author

gui-lux commented Sep 6, 2023

dietpi@x3800:~/test$ gcc -march=armv8-a+crc -mfpu=neon -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: error: unrecognized command-line option ‘-mfpu=neon’
gcc: fatal error: no input files
compilation terminated.
dietpi@x3800:~/test$ gcc -march=native -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: fatal error: no input files
compilation terminated.
dietpi@x3800:~/test$ gcc -march=armv8-a+crc -o test test.c && ./test
gcc: error: test.c: Aucun fichier ou dossier de ce type
gcc: fatal error: no input files
compilation terminated.

I might be misunderstanding what you asked, I'll just skip to try to build the new veejay-core for now.

@gui-lux
Copy link
Author

gui-lux commented Sep 6, 2023

And the errors from when running make for the custom veejay-core :
makevjcorecustom.txt

But diff tells me these two outputs are the same.

One question here, ./configure says the following at the end :

configure: 
configure:  Veejay-Core 1.5.65 build configuration :
configure: 
configure:  Compiler flags: -march=armv8-a+crc -march=native -ftree-vectorize  -O3 -fno-stack-protector -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -Wall -Wunused  -fno-stack-protector
configure:    architecture: auto
configure: 
configure:  Architecture: aarch64 
configure: 
configure:    arm
configure:     NEON    enabled     : no
configure: 
configure:    Platform: Linux
configure: 
configure:  Required dependencies:
configure:   - POSIX Threads (pthread)       : true
configure:   - FFmpeg/AV AVFormat            : true 
configure:   - FFmpeg/AV AVCodec             : true 
configure:   - FFmpeg/AV Swscaler            : true 
configure:   - FFmpeg/AV AVUtil              : true 

Am I supposed to install one or more of the packages listed below ?

dietpi@x3800:~/compilation/vjc/veejay/veejay-current/veejay-core$ apt-cache search neon
libne10-10 - ARM neon (SIMD) library
libne10-dev - ARM neon (SIMD) library - development files
libneon27 - HTTP and WebDAV client library
libneon27-dbg - Detached symbols for libneon27
libneon27-dev - Header and static library files for libneon27
libneon27-gnutls - HTTP and WebDAV client library (GnuTLS enabled)
libneon27-gnutls-dbg - Detached symbols for libneon27 (GnuTLS enabled)
libneon27-gnutls-dev - Header and static library files for libneon27 (GnuTLS enabled)
librust-packed-simd-dev - Portable Packed SIMD vectors - Rust source code

@gui-lux
Copy link
Author

gui-lux commented Sep 6, 2023

However, I can manage an ssh access for you if you believe it does help.

@game-stop
Copy link
Owner

That would be much appreciated, saves me a lot of time

@game-stop
Copy link
Owner

game-stop commented Sep 6, 2023 via email

@game-stop
Copy link
Owner

game-stop commented Sep 6, 2023 via email

@game-stop
Copy link
Owner

game-stop commented Sep 6, 2023 via email

@gui-lux
Copy link
Author

gui-lux commented Sep 6, 2023

That would be much appreciated, saves me a lot of time

May I write an email to the address found in veejay's banner ?

@game-stop
Copy link
Owner

Yes, either [email protected] or [email protected] will be fine

@gui-lux
Copy link
Author

gui-lux commented Sep 7, 2023

Email sent, please check spam folder as I'm not standard GAFAM domain.

@gui-lux
Copy link
Author

gui-lux commented Sep 8, 2023

So, my rpi has burnt in flames while building veejay...

Sorry, this is my Friday's poorest joke ! Everything went fine - core, server, client, utils. \o/

Currently watching veejay running loaded with a bunch of avi/mjpeg 640x480 25fps samples + mixing FX, veejay eats roughly 120% of CPU, reloaded about 40%, temperature raising but fine. I need a better cooling system anyway.

About the FX, yes, some of them produce unexpected result :
all overlay type, effectv type produce vertical green lines.
magic tracer produces big horizontal snow lines.
luma based run fine.

chroma based, LVD, produces vertical green lines.

Frei0r plugins from source produce vertical green lines and basically run between 10 and 15 fps.

I'll see how it behaves with v4l2, http/mp4 streams and midi controller but I guess these features will be fine.
No crash observed so far.

I have an HDMI touchscreen plugged to the rpi, but it's only left-click capable so not really useful with reloaded.

Anyway, this is really great, holidays well deserved !
Your pleasure to close this issue : )

@game-stop
Copy link
Owner

game-stop commented Sep 8, 2023 via email

@gui-lux
Copy link
Author

gui-lux commented Sep 8, 2023

Sure, do you have wireguard ?

@gui-lux
Copy link
Author

gui-lux commented Sep 8, 2023

Or wait, you should be able to connect through ssh, with -L argument and localport:host:remoteport format.

@game-stop
Copy link
Owner

game-stop commented Sep 8, 2023 via email

@game-stop
Copy link
Owner

game-stop commented Sep 8, 2023 via email

@game-stop
Copy link
Owner

game-stop commented Sep 8, 2023 via email

@gui-lux
Copy link
Author

gui-lux commented Sep 9, 2023

Hi Niels,

just rebuilt with latest fixes.

About this ssh trick, you should be able to connect a local reloaded to the remote veejay.
Once connected with -L and 3490:remotehost:3490, your local port 3490 and the remote 3490 will be linked, then connect reloaded to your 3490 port on localhost. The cmdline still needs the -p argument.
Wireguard will be easier to setup if you're not inspired with ssh.

@gui-lux
Copy link
Author

gui-lux commented Sep 9, 2023

I left a server running in case you're around.

@gui-lux
Copy link
Author

gui-lux commented Sep 9, 2023

Can you try Normal Overlay and Soft Blur at your next opportunity ?

Both work well.

@gui-lux
Copy link
Author

gui-lux commented Sep 9, 2023

Not an expert at video processing here, and not familiar with lzo. From my knowledge, lzo is used in many cases but never knew that could be used with live video processing.

EDIT :
Sorry if it feels like a dumb question but could you explain a bit more about these formats you're recommending ?

Question is more like : how do I create video samples in a more veejay-compliant format ?
I know veejay can export to required formats, I guess I should play more with this features but I find it less easy when it's about cutting videos into samples.

And did you have enough of the wonderful 'Comté' and the pretty unique 'Vin Jaune' ?

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