Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development
Register FAQ Today's Posts Search

Reply
 
Thread Tools Search this Thread
Old 8th January 2016, 19:55   #441  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,181
I do, but:
Quote:
Originally Posted by the_weirdo View Post
The upside of this is that now I can statically link LSMASHSource against MSVCRT (so you don't have to install VC 2015 redist to use it
sneaker_ger is offline   Reply With Quote
Old 8th January 2016, 20:53   #442  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,455
I won't share the DLL with FFMPEG for the simple reason that I use FFMPEG x64 and L-MASH x32. Plus your avcodec-57.dll takes 10MB while theirs takes 26MB.

I'll wait for a newer static DLL to come out.
MysteryX is offline   Reply With Quote
Old 9th January 2016, 03:41   #443  |  Link
the_weirdo
Yes, I'm weird.
 
the_weirdo's Avatar
 
Join Date: May 2010
Location: Southeast Asia
Posts: 265
Quote:
Originally Posted by sneaker_ger View Post
I do, but:
Hmm... I thought it would work without MSCRT being installed, but it seems I'm still missing something.

EDIT: After some reading, I have settled that I will dynamically link the plugin against CRT again. Statically linking the CRT into DLL may cause various problems and not worth the trouble anyway.

Quote:
Originally Posted by MysteryX View Post
I won't share the DLL with FFMPEG for the simple reason that I use FFMPEG x64 and L-MASH x32. Plus your avcodec-57.dll takes 10MB while theirs takes 26MB.

I'll wait for a newer static DLL to come out.
I made a special build of the AviSynth plugin that is static. However, because FFmpeg libs were built using MSVC, their performances are often slower than GCC builds (you can read about the reason here). Also it doesn't have some external libs (libdcadec, libspeex, libmfx) and may be missing some features from the GCC builds.
__________________
“Never argue with stupid people, they will drag you down to their level and then beat you with experience.” — Mark Twain

Last edited by the_weirdo; 9th January 2016 at 11:10.
the_weirdo is offline   Reply With Quote
Old 9th January 2016, 12:17   #444  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,689
Until now, i compiled L-SMASH and L-SMASH work with VS2013 using the tutorial from here.

Now i have VS2015 Update 1, all the steps are still working, except the final, when i try to build the project with VS. Compile (not even link) fails, with several error messages like "unknow type", "impossible to convert from X to Y" and like.
Is there something more/else i have to do to make it work, or is it just impossible to build with VS2015 ?
jpsdr is offline   Reply With Quote
Old 10th January 2016, 18:15   #445  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,455
LWLibavVideoSource is working for most video sources, but sometimes I get audio and video out of sync.

This video in WebM format, for example, doesn't synchronize.
https://www.youtube.com/watch?v=zIRRGKMLaJE

Anything can be done about it?

Edit: The previous version of the DLL synchronizes it just fine.

Last edited by MysteryX; 10th January 2016 at 18:31.
MysteryX is offline   Reply With Quote
Old 10th January 2016, 18:40   #446  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,181
I don't see anything wrong with the youtube video using "LSMASHSource-AviSynth-plugin-r859-static-32bit".

Be more precise in the future. What lsmash version exactly, what is your script, where do you see the desync, is the desync constant or progressive, and upload a sample to a file host because youtube has many streams to offer (we don't want to guess).
sneaker_ger is offline   Reply With Quote
Old 11th January 2016, 06:22   #447  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,455
I tried it again, this time making sure SVP is disabled. It was definitely out of sync. Here's the video
https://mega.nz/#!eMo13YTR!7qfuUSbg4...vG5-d1MDfqzrCg

This is my script

Code:
P="Encoder\"
LoadPlugin(P+"TimeStretch.dll")
Import(P+"UUSize4.avsi")
SetMTMode(3,4)
LoadPlugin(P+"LSMASHSource.dll")
file="Input.mkv"
LWLibavVideoSource(file, cache=false, threads=2)
AudioDub(LWLibavAudioSource(file, cache=false))
SetMTMode(2)
UUSize4(mod=4)
ResampleAudio(48000)
TimeStretchPlugin(pitch = 100.0 * 0.98181819915771484)

Last edited by MysteryX; 11th January 2016 at 16:47.
MysteryX is offline   Reply With Quote
Old 12th January 2016, 19:14   #448  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,689
When i try to build with VS2015...

Any idea

Code:
1>------ Début de la génération*: Projet*: LSMASHSource, Configuration*: Release Win32 ------
1>  audio_output.c
1>  qsv.c
1>  audio_output.cpp
1>  exlibs.cpp
1>  libavsmash.c
1>..\common\libavsmash.c(191): error C3688: suffixe littéral non valide 'PRIu32'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRIu32' introuvable
1>  libavsmash_audio.c
1>  libavsmash_source.cpp
1>  libavsmash_video.c
1>..\common\libavsmash_video.c(581): error C3688: suffixe littéral non valide 'PRIu32'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRIu32' introuvable
1>..\common\libavsmash_video.c(581): error C2664: 'void lw_log_show(lw_log_handler_t *,lw_log_level,const char *,...)'*: impossible de convertir l'argument 3 de 'uint32_t' en 'const char *'
1>  ..\common\libavsmash_video.c(581): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\libavsmash_video.c(618): warning C4244: '='*: conversion de 'double' en 'uint32_t', perte possible de données
1>  lsmashsource.cpp
1>  lwindex.c
1>..\common\lwindex.c(381): warning C4244: '+='*: conversion de 'int64_t' en 'int', perte possible de données
1>..\common\lwindex.c(394): warning C4244: '+='*: conversion de 'int64_t' en 'int', perte possible de données
1>..\common\lwindex.c(795): error C3680: impossible de concaténer des littéraux de chaîne définis par l'utilisateur avec des identificateurs de suffixe littéral incompatibles
1>  ..\common\lwindex.c(795): note: Concaténation du suffixe 'PRId64' avec le suffixe 'PRIu32'
1>..\common\lwindex.c(795): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(796): error C2664: 'void lw_log_show(lw_log_handler_t *,lw_log_level,const char *,...)'*: impossible de convertir l'argument 3 de 'int64_t' en 'const char *'
1>  ..\common\lwindex.c(796): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(847): error C3680: impossible de concaténer des littéraux de chaîne définis par l'utilisateur avec des identificateurs de suffixe littéral incompatibles
1>  ..\common\lwindex.c(847): note: Concaténation du suffixe 'PRId64' avec le suffixe 'PRIu32'
1>..\common\lwindex.c(847): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(848): error C2664: 'void lw_log_show(lw_log_handler_t *,lw_log_level,const char *,...)'*: impossible de convertir l'argument 3 de 'int64_t' en 'const char *'
1>  ..\common\lwindex.c(848): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(1694): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(1695): error C2664: 'void print_index(FILE *,const char *,...)'*: impossible de convertir l'argument 2 de 'int64_t' en 'const char *'
1>  ..\common\lwindex.c(1695): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(1723): error C3688: suffixe littéral non valide 'PRIx64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRIx64' introuvable
1>..\common\lwindex.c(1726): error C2664: 'int fprintf(FILE *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int' en 'const char *const '
1>  ..\common\lwindex.c(1726): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(2063): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(2070): error C2664: 'void print_index(FILE *,const char *,...)'*: impossible de convertir l'argument 2 de 'int' en 'const char *'
1>  ..\common\lwindex.c(2070): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(2166): error C3680: impossible de concaténer des littéraux de chaîne définis par l'utilisateur avec des identificateurs de suffixe littéral incompatibles
1>  ..\common\lwindex.c(2166): note: Concaténation du suffixe 'PRId64' avec le suffixe 'PRIx64'
1>..\common\lwindex.c(2166): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(2172): error C2664: 'void print_index(FILE *,const char *,...)'*: impossible de convertir l'argument 2 de 'int' en 'const char *'
1>  ..\common\lwindex.c(2172): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(2229): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(2233): error C2664: 'void print_index(FILE *,const char *,...)'*: impossible de convertir l'argument 2 de 'unsigned int' en 'const char *'
1>  ..\common\lwindex.c(2233): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(2277): error C3688: suffixe littéral non valide 'PRId64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""PRId64' introuvable
1>..\common\lwindex.c(2278): error C2664: 'void print_index(FILE *,const char *,...)'*: impossible de convertir l'argument 2 de 'unsigned int' en 'const char *'
1>  ..\common\lwindex.c(2278): note: La conversion d'un type intégral en type pointeur nécessite reinterpret_cast, un cast de style C ou un cast de style fonction
1>..\common\lwindex.c(2560): error C3688: suffixe littéral non valide 'SCNd64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNd64' introuvable
1>..\common\lwindex.c(2561): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int *' en 'const char *const '
1>  ..\common\lwindex.c(2561): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>..\common\lwindex.c(2672): error C3688: suffixe littéral non valide 'SCNx64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNx64' introuvable
1>..\common\lwindex.c(2673): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int *' en 'const char *const '
1>  ..\common\lwindex.c(2673): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>..\common\lwindex.c(2751): error C3688: suffixe littéral non valide 'SCNd64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNd64' introuvable
1>..\common\lwindex.c(2751): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int *' en 'const char *const '
1>  ..\common\lwindex.c(2751): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>..\common\lwindex.c(2781): error C3688: suffixe littéral non valide 'SCNd64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNd64' introuvable
1>..\common\lwindex.c(2782): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int64_t *' en 'const char *const '
1>  ..\common\lwindex.c(2782): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>..\common\lwindex.c(2802): error C3688: suffixe littéral non valide 'SCNd64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNd64' introuvable
1>..\common\lwindex.c(2803): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int64_t *' en 'const char *const '
1>  ..\common\lwindex.c(2803): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>..\common\lwindex.c(2861): error C3688: suffixe littéral non valide 'SCNx64'; opérateur littéral ou modèle d'opérateur littéral 'operator ""SCNx64' introuvable
1>..\common\lwindex.c(2864): error C2664: 'int sscanf(const char *const ,const char *const ,...)'*: impossible de convertir l'argument 2 de 'int *' en 'const char *const '
1>  ..\common\lwindex.c(2864): note: Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
1>  lwlibav_audio.c
1>  lwlibav_dec.c
1>  lwlibav_source.cpp
1>  lwlibav_video.c
1>  lwsimd.c
1>  resample.c
1>  utils.c
1>  video_output.cpp
========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
jpsdr is offline   Reply With Quote
Old 12th January 2016, 22:39   #449  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
I'm trying to get L-SMASH Works working with VapourSynth on Linux and because there is no documentation I'm not aware if I need L-SMASH too or just L-SMASH Works. Thanks

EDIT: What are the correct steps to build it on Linux? Do I just need to ./configure, make, make install inside the VapourSynth directory or are there other steps to do additionally or instead of?

Last edited by an3k; 12th January 2016 at 22:43.
an3k is offline   Reply With Quote
Old 12th January 2016, 22:54   #450  |  Link
Are_
Registered User
 
Join Date: Jun 2012
Location: Ibiza, Spain
Posts: 323
Yes, you first need https://github.com/l-smash/l-smash and then you can build https://github.com/VFR-maniac/L-SMASH-Works

Just ./configure && make && make install will suffice, I'm not sure what you mean by "make install inside the VapourSynth directory" but I think it's difficult to go wrong with this.
Are_ is offline   Reply With Quote
Old 13th January 2016, 01:05   #451  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
Quote:
Originally Posted by Are_ View Post
Yes, you first need https://github.com/l-smash/l-smash and then you can build https://github.com/VFR-maniac/L-SMASH-Works

Just ./configure && make && make install will suffice, I'm not sure what you mean by "make install inside the VapourSynth directory" but I think it's difficult to go wrong with this.
Ok, thank you. These are the steps I took on a clean Ubuntu Server 14.04.3 installation with the required packages (git, gcc) already installed:

1) git clone https://github.com/l-smash/l-smash.git
2) cd l-smash/
3) ./configure
4) make
5) make install
6) cd ../
7) git clone https://github.com/VFR-maniac/L-SMASH-Works.git
8) cd L-SMASH-Works/
9) ./configure

Here I'm getting an error ("-bash: ./configure: No such file or directory") because there is no file at all (except .gitignore) in this directory but four directories AviSynth, AviUtil, common and VapourSynth. Only in AviUtil and VapourSynth I can find a file called configure and because I need L-SMASH for VS I guess I have to cd into that directory before ./configure (That's what I meant with "make install inside the VapourSynth directory" ) thus

10) cd VapourSynth/
11) ./configure

Here I experience the next error (the same I experienced every time I tried it before) and I have no clue why:
Code:
./configure
~/L-SMASH-Works/VapourSynth ~/L-SMASH-Works/VapourSynth
~/L-SMASH-Works/VapourSynth
CFLAGS/LDFLAGS checking...
warning: pkg-config or pc files not found, lib detection may be inaccurate.
checking for liblsmash...
error: liblsmash checking failed
error: lsmash.h might not be installed or some libs missing.
l-smash compiled and got installed correctly, not a single warning or error and the default path configure for L-SMASH Works uses (/usr/local/ and /usr/local/lib/) are correct. I even symlinked liblsmash.pc and lsmash.h into ~/L-SMASH-Works/VapourSynth directory and also into ~/L-SMASH-Works/common but that doesn't helped too.

I guess I'm missing here something?!
an3k is offline   Reply With Quote
Old 13th January 2016, 01:41   #452  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,515
Code:
sudo apt-get install checkinstall
L-SMASH:
Code:
git clone git://github.com/l-smash/l-smash.git
cd l-smash
./configure
make -j$(nproc)
sudo checkinstall --pkgname=lsmash --pkgversion="0:$(git rev-list --count HEAD)-g$(git rev-parse --short HEAD)" \
--backup=no --deldoc=yes --delspec=yes --deldesc=yes --strip=yes --fstrans=no --default
LSMASHSource:
Code:
git clone git://github.com/VFR-maniac/L-SMASH-Works.git
cd L-SMASH-Works/VapourSynth
./configure
make -j$(nproc)
sudo checkinstall --pkgname=vslsmashsource --pkgversion="1:$(git rev-list --count HEAD)-g$(git rev-parse --short HEAD)" \
--backup=no --deldoc=yes --delspec=yes --deldesc=yes --strip=yes --stripso=yes --addso=yes --fstrans=no --default
qyot27 is offline   Reply With Quote
Old 13th January 2016, 04:24   #453  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
I noticed a problem with the configure script itself. Without ffmpeg installed it shows the following error
Quote:
Originally Posted by an3k View Post
Code:
./configure
~/L-SMASH-Works/VapourSynth ~/L-SMASH-Works/VapourSynth
~/L-SMASH-Works/VapourSynth
CFLAGS/LDFLAGS checking...
warning: pkg-config or pc files not found, lib detection may be inaccurate.
checking for liblsmash...
error: liblsmash checking failed
error: lsmash.h might not be installed or some libs missing.
However, with ffmpeg installed is shows
Code:
./configure
~/L-SMASH-Works/VapourSynth ~/L-SMASH-Works/VapourSynth
~/L-SMASH-Works/VapourSynth
CFLAGS/LDFLAGS checking...
checking for liblsmash...
checking for libavformat...
checking for libavcodec...
checking for libswscale...

settings...
CC          = gcc
LD          = gcc
STRIP       = strip
CFLAGS      = -Os -ffast-math -Wall -std=c99 -pedantic -I. -I. -fPIC -I/usr/local/include  -fexcess-precision=fast -I/usr/local/include
LDFLAGS     = -fPIC -L. -L/usr/local/lib -L${exec_prefix}/lib  -shared
LIBS        = -pthread -L/usr/local/lib -llsmash -lavformat -lavcodec -lswresample -lswscale -lavutil -lm
SONAME      = libvslsmashsource.so.868
SOFLAGS     = -Wl,-soname,libvslsmashsource.so.868
PREFIX      = /usr/local
VSPLUGINDIR = ${libdir}/vapoursynth

configure finished.
type 'make' : compile libvslsmashsource.so.868
So the problem is that if libavformat and/or libavcodec and/or libswscale is not present it shows that liblsmash is not present (which in fact is).

Now, after configure successfully finishes I went onto make and I get a new error:
Code:
gcc -Os -ffast-math -Wall -std=c99 -pedantic -I. -I. -fPIC -I/usr/local/include  -fexcess-precision=fast -I/usr/local/include   -c ../common/lwlibav_audio.c -o ../common/lwlibav_audio.o
../common/lwlibav_audio.c:31:63: fatal error: libavresample/avresample.h: No such file or directory
 #include <libavresample/avresample.h>   /* Resampler/Buffer */
                                                               ^
compilation terminated.
make: *** [../common/lwlibav_audio.o] Error 1
After cp'ing the libavresample directory from the ffmpeg-2.8.4 directory (after ffmpeg was ./configure'd && make'ed && make install'ed) into the L-SMASH-Works/VapourSynth directory I get past this point but then a new error occurs:
Code:
gcc -Wl,-soname,libvslsmashsource.so.868 -fPIC -L. -L/usr/local/lib -L/usr/local/lib  -shared -Wl,-s -o libvslsmashsource.so.868 lsmashsource.o video_output.o libavsmash_source.o lwlibav_source.o \ 
../common/utils.o ../common/qsv.o ../common/libavsmash.o ../common/libavsmash_video.o ../common/lwlibav_dec.o ../common/lwlibav_video.o ../common/lwlibav_audio.o ../common/lwindex.o \ 
../common/video_output.o -pthread -L/usr/local/lib -llsmash -lavformat -lavcodec -lswresample -lswscale -lavutil -lm
/usr/bin/ld: /usr/local/lib/liblsmash.a(description.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/liblsmash.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [libvslsmashsource.so.868] Error 1
However, this error is gone after you go back into the ffmpeg-2.8.4 directory and do
1) ./configure --enable-shared
2) make
3) make install

And at this point ffmpeg, l-smash and L-Smash Works were successfully built and installed. But the remaining question is: Is all of this the expected behavior, especially the manual cp of the libavresample directory?

Quote:
Originally Posted by qyot27 View Post
Code:
sudo apt-get install checkinstall
L-SMASH:
Code:
git clone git://github.com/l-smash/l-smash.git
cd l-smash
./configure
make -j$(nproc)
sudo checkinstall --pkgname=lsmash --pkgversion="0:$(git rev-list --count HEAD)-g$(git rev-parse --short HEAD)" \
--backup=no --deldoc=yes --delspec=yes --deldesc=yes --strip=yes --fstrans=no --default
LSMASHSource:
Code:
git clone git://github.com/VFR-maniac/L-SMASH-Works.git
cd L-SMASH-Works/VapourSynth
./configure
make -j$(nproc)
sudo checkinstall --pkgname=vslsmashsource --pkgversion="1:$(git rev-list --count HEAD)-g$(git rev-parse --short HEAD)" \
--backup=no --deldoc=yes --delspec=yes --deldesc=yes --strip=yes --stripso=yes --addso=yes --fstrans=no --default
This is excellent. Thank you very much for that! Since I don't want all the required configure & make dependencies on the final server I really love it. One short question: How do I know if I have to use --stripso=yes and/or --addso=yes or not?
an3k is offline   Reply With Quote
Old 13th January 2016, 05:53   #454  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,515
--addso=yes is necessary for any shared libraries, so you don't have to run sudo ldconfig. --stripso=yes is mostly to make sure the shared libs are stripped, which really only cuts down on filesize (and may have an impact on install speed, since it takes less time to cp the files into the install dirs); for libs that don't strip automatically for non-debug builds, --stripso=yes will take care of that.

Just build FFmpeg with avresample support (--enable-avresample). The issue with the -fPIC error is due to PIC being required on 64-bit. Using --enable-pic when configuring FFmpeg may avert that error if you still want those as static rather than shared.
qyot27 is offline   Reply With Quote
Old 15th January 2016, 16:59   #455  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
Quote:
Originally Posted by qyot27 View Post
--addso=yes is necessary for any shared libraries, so you don't have to run sudo ldconfig. --stripso=yes is mostly to make sure the shared libs are stripped, which really only cuts down on filesize (and may have an impact on install speed, since it takes less time to cp the files into the install dirs); for libs that don't strip automatically for non-debug builds, --stripso=yes will take care of that.

Just build FFmpeg with avresample support (--enable-avresample). The issue with the -fPIC error is due to PIC being required on 64-bit. Using --enable-pic when configuring FFmpeg may avert that error if you still want those as static rather than shared.
Thank you very much! I got everything I needed successfully compiled but all with shared libs and before I continue with static ones I want to fix some maybe errors I encounter.

When running this script through vspipe (or manually in Python) I get the below error:
Code:
import vapoursynth as vs

# get the core instance
core = vs.get_core()

# open a video file; clip is now a clip object
clip = core.lsmas.LibavSMASHSource("sample.mkv")

# set the clip to be output
clip.set_output()
Code:
vapoursynth@encoder:~$ vspipe test.vpy - | x264 --crf 22 --input-res 1920x1080 - -o sample_recode.264
raw [info]: 1920x1080p 0:0 @ 25/1 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 4.0
[importer: Error]: failed to find the matched importer.
Script evaluation failed:
Python exception: [Fatal]: Failed to read an input file

Traceback (most recent call last):
  File "src/cython/vapoursynth.pyx", line 1489, in vapoursynth.vpy_evaluateScript (src/cython/vapoursynth.c:27016)
  File "test.vpy", line 8, in <module>
    clip = core.lsmas.LibavSMASHSource("sample.mkv")
  File "src/cython/vapoursynth.pyx", line 1381, in vapoursynth.Function.__call__ (src/cython/vapoursynth.c:25311)
vapoursynth.Error: [Fatal]: Failed to read an input file



vapoursynth@encoder:~$
When I use the same test.vpy script but open a raw h.264 source I get the following error (this time no vspipe because it outputs nothing):
Code:
vapoursynth@encoder:~$ python3.4
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import vapoursynth as vs
>>> core = vs.get_core()
>>> clip = core.lsmas.LibavSMASHSource("sample.264")
Segmentation fault (core dumped)as H.264
vapoursynth@encoder:~$
Before Python crashes I see [H.264: Info]: Analyzing stream as H.264 where Segmentation fault (core dumped)as H.264 is in the above paste

EDIT: core.lsmas.LWLibavSource("sample.264") works perfectly also with the sample.mkv

Last edited by an3k; 15th January 2016 at 17:03.
an3k is offline   Reply With Quote
Old 15th January 2016, 17:12   #456  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,515
LibavSMASHSource is for MP4 (and probably MOV and other ISO Base Media) files only. LwLibavSource is the general-use source filter.
qyot27 is offline   Reply With Quote
Old 16th January 2016, 18:31   #457  |  Link
speedyrazor
Registered User
 
Join Date: Mar 2003
Posts: 194
Hi, I am using the below script to open a Quicktime Prores HQ (10 bit video) file which has multi channel / multi track audio (24 bit audio). Just want to check I am doing it correctly?

Code:
v=lsmashvideosource("movie.mov", stacked=true, format="YUY2")
a1 = lsmashAudioSource("movie.mov", track=1)
a2 = lsmashAudioSource("movie.mov", track=2)
a3 = lsmashAudioSource("movie.mov", track=3)
a4 = lsmashAudioSource("movie.mov", track=4)
a5 = lsmashAudioSource("movie.mov", track=5)
a6 = lsmashAudioSource("movie.mov", track=6)
a7 = lsmashAudioSource("movie.mov", track=7)
a = MergeChannels(a1,a2,a3,a4,a5,a6,a7)
AudioDub(a,v)
The file is opening and displaying picture and audio, but takes a couple of minutes to open a large 130GB HD file.

Last edited by speedyrazor; 16th January 2016 at 18:59.
speedyrazor is offline   Reply With Quote
Old 16th January 2016, 20:18   #458  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,455
It takes time to open because it first needs to index the file. Which means, at the very least, reading 130GB from your hard drive. Then it caches the result in a file.
MysteryX is offline   Reply With Quote
Old 16th January 2016, 22:21   #459  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 5,181
lsmashxxxxxsource does not create index files
sneaker_ger is offline   Reply With Quote
Old 16th January 2016, 23:14   #460  |  Link
LigH
I shot my foot with sugar
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Leipzig, Saxony, Germany
Posts: 7,392
But LSMASH{Audio|Video}Source can only read ISO Media containers, like e.g. MP4, 3GPP, or MOV ... oh, MOV. You are lucky.

But then there must be another reason why AviSynth with L-SMASH Works needs some time to prepare the access. Maybe it's in the structure of the MOV file so it needs to be scanned completely for all required header data.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 16th January 2016 at 23:16.
LigH is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 22:27.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.