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 |
|
|
#443 | Link | |
|
Yes, I'm weird.
Join Date: May 2010
Location: Southeast Asia
Posts: 265
|
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:
__________________
“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. |
|
|
|
|
|
|
#444 | Link |
|
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 ? |
|
|
|
|
|
#445 | Link |
|
Soul Architect
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.
__________________
FrameRateConverter | AvisynthShader | AvsFilterNet | Natural Grounding Player with Yin Media Encoder, 432hz Player, Powerliminals Player and Audio Video Muxer Last edited by MysteryX; 10th January 2016 at 18:31. |
|
|
|
|
|
#446 | Link |
|
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). |
|
|
|
|
|
#447 | Link |
|
Soul Architect
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)
__________________
FrameRateConverter | AvisynthShader | AvsFilterNet | Natural Grounding Player with Yin Media Encoder, 432hz Player, Powerliminals Player and Audio Video Muxer Last edited by MysteryX; 11th January 2016 at 16:47. |
|
|
|
|
|
#448 | Link |
|
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é ========== |
|
|
|
|
|
#449 | Link |
|
Registered User
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. |
|
|
|
|
|
#450 | Link |
|
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. |
|
|
|
|
|
#451 | Link | |
|
Registered User
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
|
Quote:
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" ) thus10) 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. I guess I'm missing here something?! |
|
|
|
|
|
|
#452 | Link |
|
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,515
|
Code:
sudo apt-get install checkinstall 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 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 |
|
|
|
|
|
#453 | Link | ||
|
Registered User
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:
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
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
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 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:
|
||
|
|
|
|
|
#454 | Link |
|
...?
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. |
|
|
|
|
|
#455 | Link | |
|
Registered User
Join Date: Oct 2006
Location: Omicron Persei 8
Posts: 172
|
Quote:
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:~$
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:~$
EDIT: core.lsmas.LWLibavSource("sample.264") works perfectly also with the sample.mkv Last edited by an3k; 15th January 2016 at 17:03. |
|
|
|
|
|
|
#457 | Link |
|
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)
Last edited by speedyrazor; 16th January 2016 at 18:59. |
|
|
|
|
|
#460 | Link |
|
I shot my foot with sugar
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. Last edited by LigH; 16th January 2016 at 23:16. |
|
|
|
![]() |
|
|