mltframework / mlt Goto Github PK
View Code? Open in Web Editor NEWMLT Multimedia Framework
Home Page: https://www.mltframework.org
License: GNU Lesser General Public License v2.1
MLT Multimedia Framework
Home Page: https://www.mltframework.org
License: GNU Lesser General Public License v2.1
I try to add background music to a video, and I got this error:
[mlt_pool] out of memory 0
And I find melt process %MEM up to 96.8%
And here is my command:
melt -track "http://netdisk.foream.cn:8080/netdisk/iface/downloadFile?fileId=74976&expire=1425987406247&hash=ab0609081cabea3755199519f3e36d3e&ext=.mp4" -audio-track "http://netdisk.foream.cn:8080/netdisk/iface/downloadOpen?fileId=75023" -transition mix:-1 a_track=0 b_track=1 -consumer avformat:c.mp4 vcodec=libx264 acodec=aac
I get this error building 6.2.0:
producer_avformat.c: In function ‘producer_get_audio’:
producer_avformat.c:2224:17: error: ‘AVCodecContext {aka struct AVCodecContext}’ has no member named ‘request_channels’
codec_context->request_channels = self->audio_index == INT_MAX ? codec_context->channels : *channels;
Would this be connected with ffmpeg version by any chance? I have 3.1.1
I asked this question on Stack Overflow, but the more I think about it, the more I think this might be a bug: http://stackoverflow.com/questions/40047609/inconsistant-rendering-in-libmelt-xml-and-c-interface-and-hold-producer-and-av
For what its worth, I am running OS X El Capitan.
Here is the question:
I am trying to create a short video that is just a single image. (I know its a bit silly, but its a test for something bigger).
The code I have for rendering it is:
#include <framework/mlt.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
if(mlt_factory_init(NULL)) {
mlt_profile p = mlt_profile_init(NULL);
mlt_consumer target = mlt_factory_consumer(p, "avformat",
mlt_producer source = mlt_factory_producer(p, "hold", "/Users/leif/logo.png");
mlt_producer_set_in_and_out(source, 0, 10);
mlt_consumer_connect(target, mlt_producer_service(source));
mlt_consumer_start(target);
sleep(5);
mlt_consumer_stop(target);
mlt_consumer_close(target);
mlt_producer_close(source);
mlt_factory_close();
} else {
printf("No\n");
}
return 0;
}
Where logo.png
is this file.
When I run this code and play output.mp4
, the picture comes out all garbelled. There is a green line in the middle and the logo is superimposed on itself a lot.
On the other hand, if I change the consumer to be SDL, the image plays just fine.
And finally, if I change the consumer to be XML, and then use the melt command line application to render it:
melt -consumer avformat:xmlout.mp4 output.xml
and play the video, it also plays fine.
Is there something I am missing in the avformat consumer that I should be setting? Or something else that I am missing here?
Edit: For reference, the outputted xml file: output.xml
is:
<?xml version="1.0" encoding="utf-8"?>
<mlt LC_NUMERIC="en_US.UTF-8" version="6.2.0" root="/Users/leif/src/video/private" title="Anonymous Submission" parent="producer0" in="0" out="10">
<profile description="DV/DVD PAL" width="720" height="576" progressive="0" sample_aspect_num="16" sample_aspect_den="15" display_aspect_num="4" display_aspect_den="3" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
<producer id="producer0" title="Anonymous Submission" in="0" out="10">
<property name="length">15000</property>
<property name="eof">pause</property>
<property name="resource">/Users/leif/logo.png</property>
<property name="aspect_ratio">1.06667</property>
<property name="frame">0</property>
<property name="method">onefield</property>
<property name="mlt_service">hold</property>
<property name="global_feed">1</property>
</producer>
</mlt>
Any feedback you could give would be helpful, thank you.
There's a problem with keeping A+V synchronization on long running live input streams. My input is a multicast UDP MPEG-TS from a decent source (satelite ingest for a big iptv provider, my server is in the same facility). Over 15h video is 1 minute ahead of audio (it's perfectly in sync at the start). On the other hand just playing the stream using ffplay or doing a live transcode with the same version of ffmpeg used for building melt is in perfect sync.
Since at least Summer 2015, any build of MLT where --enable-movit is used in configuration and Kdenlive is run with Movit enabled diverts Kdenlive rendering from the output file to a window on the screen. Rendering ends when playback ends with a zero byte file.
On the other hand, allowing MLT to autodetect a properly installed Movit install works fine, all the Movit effects will work in kdenlive, and rendering is to the output file with all Movit effects having worked.
This is some kind of issue in the build system where autodetection of Movit does one thing, and explicit specification does something else, something that does not work right at least for Kdenlive.
This is very confusing, no documentation can be found online, I only found this out by accident when disabling VDPAU support (which I used to use) for a test build and accidently also disabling explicit Movit detection. Took until tonight to know what I had really done.
Hello, I have problems in consumer multi, I can not seek the playlist
melt -profile dv_ntsc Wildlife.mov -consumer multi 0=sdl 1=decklink terminate_on_pause=0 real_time=1
Pressing (H = back 1 minute), (L = forward 1 minute) or (g = start of clip) the melt hangs for a few seconds and goes, but not back or forward in the playlist. Using libmlt ++ is the same problem, it is not possible to seek in the playlist when using the multi consumer. Can someone help me please?
Hi! Please excuse me for double posting this issue. Not sure which one of sourceforge or github's tracker is active. (if not both?)
I'm trying to write an automated system for previewing video clips in a timeline. It works just fine for regular speed video, but I have isssues when using video played back at other speeds. Melt doesn't seem to respect the in frame given in the xml.
I found this issue, but it doesn't apply to my case as I need to trim away a handle and begin at frame 15. With a speedup of 4 it begins at frame 60 of the file.
I also confirmed the same behavior when doing the same speedup in OpenShot. Both in the program and when using an exported mlt xml.
I've tried timewarp and framebuffer producers both yielding the same result. Here is an example of how I do the speedup:
<producer id="ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov">
<property name="mlt_service">framebuffer</property>
<property name="resource">/mnt/data/ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov?4.0</property>
</producer>
<playlist id="video1">
<blank length="25"/>
<entry in="15" out="50" producer="ms160_conform_plate_main_v001_ClientSDComp_photojpeg.mov"/>
</playlist>
Am I doing this wrong or is this a bug?
Versions: 0.7.7 (ubuntu12.04) and 6.0.0 (ubuntu 16.04)
Thanks,
-Daniel
If MLT 6.1.0 is built with --enable-gpl3 , used with Kdenlive, and Kdenlive is set up with Movit enabled, all render jobs get diverted to a window on the screen. The output file remains at 0 bytes. Adding --avformat-no-vdpau to the configuration options stops this, as does buidling without GPLv3 support. I had to read the configure script for the avformat module to find this and sucessfully build for Movit with GPL3 components (video quality measurement transition) enabled. It was not listed anywhere in the options displayed by./configure --help
and it should be. That line and a note that it is needed for kdenlive would save other builders a lot of trouble. In short, this is a documentation issue-the code works. Only those builders using GPLv3 will encounter this, for me the render output diversion was a mystery that took months to figure out.
Hi, I just (successfully?) installed the MLT framework on a CentOS 6.5 Linode and am trying to run a melt job on the command line:
[root@mars 20140713]# ./melt ~/chromatest/IMB_SF_R35_C8_512kb.mp4 in=400 -track ~/chromatest/IMB_SF_R19_C9_512kb.mp4 in=450 -filter chroma key=0x00ff0000 variance=0.45 -transition composite
[swscaler @ 0x2f9f6a0] Warning: data is not aligned! This can lead to a speedloss
** [consumer sdl] Failed to initialize SDL: No available video device ** (EMPHASIS MINE)
SO\o I try to install SDL and get:
[root@mars 20140713]# yum install SDL.x86_64
Package SDL-1.2.14-3.el6.x86_64 already installed and latest version
Nothing to do
What can I do?
Also, once I get past the SDL device issue, does the command make sense? I don't understand where the "output" video will be written to.
Thank you,
~Todd
Make Profile("dv_pal");
Make Consumer(_Profile,"cbrts");
Make Producer(_Profile, "decklink:0");
Producer->set("buffer",50);
Producer->set("prefill",25);
Consumer->connect(*Producer);
Consumer->run();
add log 1
add log 2
Bug 1:
Ok, now i have output: prefill is 25, queue size is 50, frames in queue 1
Prefill set to 25 but frames in queue 1.
Bug 2:
After 24-25 hours producer_decklink say "buffer overrun, frame dropped..." and drop next frames each time.
I add log 2 for check what's happening and is now waiting for the result.
//master/src/modules/decklink/producer_decklink.cpp
//string 534
// Put frame in queue
if ( frame )
{
int queueMax = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "buffer" );
pthread_mutex_lock( &m_mutex );
if ( mlt_deque_count( m_queue ) < queueMax )
{
mlt_deque_push_back( m_queue, frame );
// add log 1
int prefillsize = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "prefill" );
mlt_log_warning( getProducer(), "prefill is %d, queue size is %d, frames in queue %d\n",prefillsize, queueMax, mlt_deque_count( m_queue ));
pthread_cond_broadcast( &m_condition );
}
else
{
// add log 2
int prefillsize = mlt_properties_get_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "prefill" );
mlt_log_warning( getProducer(), "DROP!!! prefill is %d, queue size is %d, frames in queue %d\n",prefillsize, queueMax, mlt_deque_count( m_queue ));
mlt_frame_close( frame );
mlt_properties_set_int( MLT_PRODUCER_PROPERTIES( getProducer() ), "dropped", ++m_dropped );
mlt_log_warning( getProducer(), "buffer overrun, frame dropped %d\n", m_dropped );
}
pthread_mutex_unlock( &m_mutex );
I'm trying to compile the MLT using musl, but occurs some errors during compilation.
My config.log is:
./configure --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --host=x86_64-linux-musl --with-sysroot=/usr/x86_64-linux-musl --with-libtool-sysroot=/usr/x86_64-linux-musl --enable-mmx
Error message is:
list='src/framework src/mlt++ src/melt src/modules src/swig profiles'; \
for subdir in $list; do \
make -s -C $subdir depend || exit 1; \
make -C $subdir all || exit 1; \
done
make[1]: Entering directory '/builddir/mlt-0.9.8/src/framework'
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\"" -c -o mlt_frame.o mlt_frame.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\"" -c -o mlt_version.o mlt_version.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\"" -c -o mlt_geometry.o mlt_geometry.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\"" -c -o mlt_deque.o mlt_deque.c
x86_64-linux-musl-gcc -O2 -pipe -fstack-protector-strong -D_FORTIFY_SOURCE=2 -mtune=generic -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fPIC -pthread -rdynamic -DPREFIX_DATA="\"/usr/share/mlt\"" -DPREFIX_LIB="\"/usr/lib/mlt\"" -c -o mlt_property.o mlt_property.c
In file included from /usr/x86_64-linux-musl/usr/include/string.h:23:0,
from mlt_property.c:33:
/usr/x86_64-linux-musl/usr/include/bits/alltypes.h:368:34: error: conflicting types for ‘locale_t’
typedef struct __locale_struct * locale_t;
^
In file included from mlt_property.c:28:0:
mlt_property.h:36:15: note: previous declaration of ‘locale_t’ was here
typedef char* locale_t;
^
mlt_property.c: In function ‘time_clock_to_frames’:
mlt_property.c:292:26: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
setlocale( LC_NUMERIC, locale );
^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
char *setlocale (int, const char *);
^
mlt_property.c: At top level:
mlt_property.c:446:5: error: conflicting types for ‘mlt_property_get_int’
int mlt_property_get_int( mlt_property self, double fps, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:46:12: note: previous declaration of ‘mlt_property_get_int’ was here
extern int mlt_property_get_int( mlt_property self, double fps, locale_t );
^
mlt_property.c: In function ‘mlt_property_atof’:
mlt_property.c:506:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
setlocale( LC_NUMERIC, locale );
^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
char *setlocale (int, const char *);
^
mlt_property.c: At top level:
mlt_property.c:536:8: error: conflicting types for ‘mlt_property_get_double’
double mlt_property_get_double( mlt_property self, double fps, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:47:15: note: previous declaration of ‘mlt_property_get_double’ was here
extern double mlt_property_get_double( mlt_property self, double fps, locale_t );
^
mlt_property.c:563:14: error: conflicting types for ‘mlt_property_get_position’
mlt_position mlt_property_get_position( mlt_property self, double fps, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:48:21: note: previous declaration of ‘mlt_property_get_position’ was here
extern mlt_position mlt_property_get_position( mlt_property self, double fps, locale_t );
^
mlt_property.c:687:7: error: conflicting types for ‘mlt_property_get_string_l’
char *mlt_property_get_string_l( mlt_property self, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:51:14: note: previous declaration of ‘mlt_property_get_string_l’ was here
extern char *mlt_property_get_string_l( mlt_property self, locale_t );
^
mlt_property.c: In function ‘mlt_property_get_string_l’:
mlt_property.c:703:28: warning: initialization from incompatible pointer type
const char *localename = locale;
^
mlt_property.c: At top level:
mlt_property.c:913:7: error: conflicting types for ‘mlt_property_get_time’
char *mlt_property_get_time( mlt_property self, mlt_time_format format, double fps, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:55:14: note: previous declaration of ‘mlt_property_get_time’ was here
extern char *mlt_property_get_time( mlt_property self, mlt_time_format, double fps, locale_t );
^
mlt_property.c: In function ‘mlt_property_get_time’:
mlt_property.c:937:28: warning: initialization from incompatible pointer type
const char *localename = locale;
^
mlt_property.c: In function ‘is_property_numeric’:
mlt_property.c:1040:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
setlocale( LC_NUMERIC, locale );
^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
char *setlocale (int, const char *);
^
mlt_property.c:1023:10: warning: variable ‘temp’ set but not used [-Wunused-but-set-variable]
double temp;
^
mlt_property.c: At top level:
mlt_property.c:1101:5: error: conflicting types for ‘mlt_property_interpolate’
int mlt_property_interpolate( mlt_property self, mlt_property p[],
^
In file included from mlt_property.c:28:0:
mlt_property.h:57:12: note: previous declaration of ‘mlt_property_interpolate’ was here
extern int mlt_property_interpolate( mlt_property self, mlt_property points[], double progress, double fps, locale_t locale, mlt_keyframe_type interp );
^
mlt_property.c: In function ‘mlt_property_interpolate’:
mlt_property.c:1115:52: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[0] = p[1]? mlt_property_get_rect( p[1], locale ) : zero;
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c:1118:47: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[1] = mlt_property_get_rect( p[2], locale );
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c:1134:52: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[1] = p[1]? mlt_property_get_rect( p[1], locale ) : zero;
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c:1137:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[0] = p[0]? mlt_property_get_rect( p[0], locale ) : zero;
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c:1138:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[2] = p[2]? mlt_property_get_rect( p[2], locale ) : zero;
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c:1139:53: warning: passing argument 2 of ‘mlt_property_get_rect’ from incompatible pointer type
points[3] = p[3]? mlt_property_get_rect( p[3], locale ) : zero;
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c: In function ‘refresh_animation’:
mlt_property.c:1199:74: warning: passing argument 5 of ‘mlt_animation_parse’ from incompatible pointer type
mlt_animation_parse( self->animation, self->prop_string, length, fps, locale );
^
In file included from mlt_property.c:29:0:
mlt_animation.h:41:12: note: expected ‘locale_t’ but argument is of type ‘locale_t’
extern int mlt_animation_parse(mlt_animation self, const char *data, int length, double fps, locale_t locale );
^
mlt_property.c: At top level:
mlt_property.c:1227:8: error: conflicting types for ‘mlt_property_anim_get_double’
double mlt_property_anim_get_double( mlt_property self, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:58:15: note: previous declaration of ‘mlt_property_anim_get_double’ was here
extern double mlt_property_anim_get_double( mlt_property self, double fps, locale_t locale, int position, int length );
^
mlt_property.c:1262:5: error: conflicting types for ‘mlt_property_anim_get_int’
int mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:59:12: note: previous declaration of ‘mlt_property_anim_get_int’ was here
extern int mlt_property_anim_get_int( mlt_property self, double fps, locale_t locale, int position, int length );
^
mlt_property.c:1297:7: error: conflicting types for ‘mlt_property_anim_get_string’
char* mlt_property_anim_get_string( mlt_property self, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:60:14: note: previous declaration of ‘mlt_property_anim_get_string’ was here
extern char* mlt_property_anim_get_string( mlt_property self, double fps, locale_t locale, int position, int length );
^
mlt_property.c:1345:5: error: conflicting types for ‘mlt_property_anim_set_double’
int mlt_property_anim_set_double( mlt_property self, double value, double fps, locale_t locale,
^
In file included from mlt_property.c:28:0:
mlt_property.h:61:12: note: previous declaration of ‘mlt_property_anim_set_double’ was here
extern int mlt_property_anim_set_double( mlt_property self, double value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
^
mlt_property.c:1380:5: error: conflicting types for ‘mlt_property_anim_set_int’
int mlt_property_anim_set_int( mlt_property self, int value, double fps, locale_t locale,
^
In file included from mlt_property.c:28:0:
mlt_property.h:62:12: note: previous declaration of ‘mlt_property_anim_set_int’ was here
extern int mlt_property_anim_set_int( mlt_property self, int value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
^
mlt_property.c:1417:5: error: conflicting types for ‘mlt_property_anim_set_string’
int mlt_property_anim_set_string( mlt_property self, const char *value, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:63:12: note: previous declaration of ‘mlt_property_anim_set_string’ was here
extern int mlt_property_anim_set_string( mlt_property self, const char *value, double fps, locale_t locale, int position, int length );
^
mlt_property.c:1511:10: error: conflicting types for ‘mlt_property_get_rect’
mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale )
^
In file included from mlt_property.c:28:0:
mlt_property.h:67:17: note: previous declaration of ‘mlt_property_get_rect’ was here
extern mlt_rect mlt_property_get_rect( mlt_property self, locale_t locale );
^
mlt_property.c: In function ‘mlt_property_get_rect’:
mlt_property.c:1540:27: warning: passing argument 2 of ‘setlocale’ from incompatible pointer type
setlocale( LC_NUMERIC, locale );
^
In file included from mlt_property.c:34:0:
/usr/x86_64-linux-musl/usr/include/locale.h:53:7: note: expected ‘const char *’ but argument is of type ‘locale_t’
char *setlocale (int, const char *);
^
mlt_property.c: At top level:
mlt_property.c:1608:5: error: conflicting types for ‘mlt_property_anim_set_rect’
int mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps, locale_t locale,
^
In file included from mlt_property.c:28:0:
mlt_property.h:68:12: note: previous declaration of ‘mlt_property_anim_set_rect’ was here
extern int mlt_property_anim_set_rect( mlt_property self, mlt_rect value, double fps, locale_t locale, int position, int length, mlt_keyframe_type keyframe_type );
^
mlt_property.c:1641:10: error: conflicting types for ‘mlt_property_anim_get_rect’
mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps, locale_t locale, int position, int length )
^
In file included from mlt_property.c:28:0:
mlt_property.h:69:17: note: previous declaration of ‘mlt_property_anim_get_rect’ was here
extern mlt_rect mlt_property_anim_get_rect( mlt_property self, double fps, locale_t locale, int position, int length );
^
<builtin>: recipe for target 'mlt_property.o' failed
make[1]: *** [mlt_property.o] Error 1
make[1]: Leaving directory '/builddir/mlt-0.9.8/src/framework'
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 1
My intention to compile the MLT using musl is to package it for the distro Void Linux.
I really like some of the stuff available from CasparCG (https://github.com/CasparCG/Server), but it can be fragile and unstable at times compared to melted. They are using "Chromium Embedded Framework" for HTML5 based motion graphics to be keyed over video sources.
I would prefer to be able to do the same from a linux based melted playout.
Judging a system resources manager like top
, the motion_est
filter processes file on one CPU core/thread only during scene recognition (since only one core used 100 % of the time). It'd be nice to parallelize the process and remove this bottleneck.
experienced with 0.9.8-1build1 on Ubuntu 15.10
Hello.
I found significant performance regression with playing AVCHD clips in melt (and kdenlive).
I made git bisect and found commit (c48ed74) with this regression. Without this commit I can smoothly play my project (1080p 25fps) in kdenlive or melt (CPU load is about 60-80% for one core). After this commit CPU load always around 100% and I see video with about 15 fps only.
It is well-nigh impossible to simply edit some sections out of a single clip (which I'm betting is the 99% use-case for a non-pro video editor). I think I did manage to create a custom profile for a 768x432 .avi file that I just wanted to trim a bit, but when I went to render it I got a bunch of choices, none of which were the format of the input clip or the custom profile I just created (and I did see the project dialog suggesting I switch to the custom profile, btw). It should be dead-simple to open a file, cut the interesting bits out and render it (ideally with no re-encode).
Also Shift
-R
only seems to work once for cutting the clip at the current cursor, and snap doesn't seem to snap very well (I think it needs to take into account the current zoom and snap within some screen-pixel distance of the closest guide, but I think it snaps in frame-space which is useless when you're zoomed out).
The version I just built:
Qt: 4.8.5
KDE Development Platform: 4.11.5
Kdenlive: 0.9.10
In ffmpeg, we can specify stream ids as -streamid 0:2064 -streamid 1:2068
. Could not locate an option to change default ids in melt.
Is it possible to output timestamp along with the frame name in command line client? Maybe with some keyboard shortcut?
For some files backward seeking not works well.
This issue present in Kdenlive but you can reproduce it with melt.
Run melt and let it play some time. Then press h key (previous frame) few times.
Current frame freezes and then start switching with gaps (switching only by keyframes?).
mlt git (d9d6bcb latest for issue report time)
ffmpeg 1.0
Arch linux x86_64
Test video (4.6 Mb): https://dl.dropbox.com/u/59794362/mlt-seeking-bug.m2t
It'd be nice to provide the melt
python
bindings on http://pypi.python.org/ in order to be installable with pip
.
If there's interest I could develop a setuptools
script.
I'm having audio artifacts with a wav file. I'm using melt 6.2.0 on 64bit Archlinux.
I posted a minimal project, with the source audio file and the resulting glitchy audio file:
https://hamoid.com/mlt-error-example.zip
You can hear the source file does not glitch but the produced one does. I attached screenshots of audacity, comparing the source with the produced audio files. The spectrograms shows regular glitches at about 0.033 second interval. The waveform, I tried to find the discontinuity, but I'm not sure it's the part I show in the image which produces the audio artifact.
Anything I can do to work around this?
Linux Fedora have SDL1 and SDL2 , but SDL2 should be better
as request in https://sourceforge.net/p/mlt/bugs/228/
Please add support for building with SDL2: it is now stable and included in many distros.
Thanks
Hello
After my last issue #108, I removed QT4, installed QT5, and installed MELT V6.0.0
$ melt -version
melt 6.0.0
Copyright (C) 2002-2016 Meltytech, LLC
<http://www.mltframework.org/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ffmpeg
ffmpeg version N-79294-g972df59 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.1)
configuration: --prefix=/opt/melt --enable-gpl --enable-version3 --enable-shared --enable-debug --enable-pthreads --enable-runtime-cpudetect --disable-doc --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-libx264 --enable-libx265 --enable-libvpx
libavutil 55. 20.100 / 55. 20.100
libavcodec 57. 34.100 / 57. 34.100
libavformat 57. 32.100 / 57. 32.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 41.100 / 6. 41.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
But I have a regression (compared to Melt 0.9.6 running with QT4) on a specific example : bad frames are generated when using a combination of webvfx and affine filtered videos.
MELT file
<mlt LC_NUMERIC="en_US.UTF-8">
<producer id="1">
<property name="resource">../../melt-tests/penguin.mp4</property>
</producer>
<producer id="63">
<property name="mlt_service">webvfx</property>
<property name="resource">plain:boc-bug.html</property>
<property name="transparent">1</property>
</producer>
<tractor>
<multitrack>
<tractor>
<multitrack>
<tractor>
<playlist>
<entry producer="1" in="0" out="200">
</entry>
</playlist>
</tractor>
</multitrack>
<filter>
<property name="mlt_service">affine</property>
<property name="transition.cycle">25</property>
<property name="transition.geometry">0=0/0:110%x110%;22=0/0:110%x110%;23=0/-2:110%x110%;24=0/0:110%x110%</property>
<property name="transition.distort">0</property>
</filter>
</tractor>
<tractor>
<multitrack>
<tractor>
<playlist>
<entry producer="63" in="0" out="124">
</entry>
</playlist>
</tractor>
</multitrack>
</tractor>
</multitrack>
<transition in="0" out="99">
<property name="mlt_service">composite</property>
<property name="a_track">0</property>
<property name="b_track">1</property>
</transition>
<transition in="100" out="124">
<property name="mlt_service">luma</property>
<property name="a_track">0</property>
<property name="b_track">1</property>
<property name="reverse">1</property>
</transition>
</tractor>
</mlt>
HTML file
<html>
<head>
</head>
<body>
<h1 style="color: #FFF">TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE TITLE</h1>
</body>
</html>
Profile my_nhd
description=my nHD
frame_rate_num=25
frame_rate_den=1
width=640
height=360
progressive=0
sample_aspect_num=1
sample_aspect_den=1
display_aspect_num=16
display_aspect_den=9
colorspace=709
Command
$ xvfb-run -a melt -profile my_nhd boc-bug.xml -progress -consumer avformat:boc-bug.mp4 strict=experimental
Same HTML
Affine filter is commented
<mlt LC_NUMERIC="en_US.UTF-8">
<producer id="1">
<property name="resource">../../melt-tests/penguin.mp4</property>
</producer>
<producer id="63">
<property name="mlt_service">webvfx</property>
<property name="resource">plain:boc-bug.html</property>
<property name="transparent">1</property>
</producer>
<tractor>
<multitrack>
<tractor>
<multitrack>
<tractor>
<playlist>
<entry producer="1" in="0" out="200">
</entry>
</playlist>
</tractor>
</multitrack>
<!-- <filter>
<property name="mlt_service">affine</property>
<property name="transition.cycle">25</property>
<property name="transition.geometry">0=0/0:110%x110%;22=0/0:110%x110%;23=0/-2:110%x110%;24=0/0:110%x110%</property>
<property name="transition.distort">0</property>
</filter> -->
</tractor>
<tractor>
<multitrack>
<tractor>
<playlist>
<entry producer="63" in="0" out="124">
</entry>
</playlist>
</tractor>
</multitrack>
</tractor>
</multitrack>
<transition in="0" out="99">
<property name="mlt_service">composite</property>
<property name="a_track">0</property>
<property name="b_track">1</property>
</transition>
<transition in="100" out="124">
<property name="mlt_service">luma</property>
<property name="a_track">0</property>
<property name="b_track">1</property>
<property name="reverse">1</property>
</transition>
</tractor>
</mlt>
Many thanks again in advance for your help
Related Debian bug: http://bugs.debian.org/764165
Part of the problem is that both AVCodecContext and the libx264 private data context respond to the "profile" property, but the AVCodecContext does not understand the "baseline" value for profile. The explanation on the Libav FAQ does not exactly apply because our avformat consumer uses 'v' prefix to attempt to do the same thing. However, "vprofile=baseline" still causes the problem in MLT because both video contexts still respond to "profile" (v prefix stripped) but only one understands "baseline." Somehow, avconv avoids this problem based upon some kind of difficult to follow logic.
I think part of the problem also stems from the fact that that MLT chooses to be compatible with many versions of Libav and FFmpeg, and the way I implemented mlt_property->AVOption makes it difficult to do something like "do not apply this property to the AVCodecContext if the codec private context accepted it." Not to mention, I have to fully confirm that is even the correct logic. Otherwise, there could be a situation where a redundant AVOption is not set when it should have been.
So, you see, this is something rather specific and a bit complicated for something that is only classified as a nuisance at this point.
ubuntu xenial
shotcut-debian8-x86_64-160701.tar.bz2
this works fine:
(veyepar) juser@dhcp20:~/local/Shotcut/Shotcut.app$ bin/melt --version
melt 6.3.0
...
but trying to run from the script, segfalt
gdb "$INSTALL_DIR/bin/melt" "$@"
(veyepar) juser@dhcp20:~/local/Shotcut/Shotcut.app$ ./melt
+ readlink -f ./melt
+ CURRENT_DIR=/home/juser/local/Shotcut/Shotcut.app/melt
+ dirname /home/juser/local/Shotcut/Shotcut.app/melt
+ INSTALL_DIR=/home/juser/local/Shotcut/Shotcut.app
+ export LD_LIBRARY_PATH=/home/juser/local/Shotcut/Shotcut.app/lib:
+ export MLT_REPOSITORY=/home/juser/local/Shotcut/Shotcut.app/lib/mlt
+ export MLT_DATA=/home/juser/local/Shotcut/Shotcut.app/share/mlt
+ export MLT_PROFILES_PATH=/home/juser/local/Shotcut/Shotcut.app/share/mlt/profiles
+ export FREI0R_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/frei0r-1
+ export MLT_MOVIT_PATH=/home/juser/local/Shotcut/Shotcut.app/share/movit
+ export QT_PLUGIN_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/qt5
+ export QML2_IMPORT_PATH=/home/juser/local/Shotcut/Shotcut.app/lib/qml
+ gdb /home/juser/local/Shotcut/Shotcut.app/bin/melt
GNU gdb (Ubuntu 7.11-0ubuntu1) 7.11
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/juser/local/Shotcut/Shotcut.app/bin/melt...done.
(gdb) run
Starting program: /home/juser/local/Shotcut/Shotcut.app/bin/melt
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
mlt_repository_init: failed to dlopen /home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltwebvfx.so
(libgstapp-0.10.so.0: cannot open shared object file: No such file or directory)
Program received signal SIGSEGV, Segmentation fault.
0x0000000000000750 in ?? ()
(gdb) bt full
#0 0x0000000000000750 in ?? ()
No symbol table info available.
#1 0x00007ffff7de74ea in call_init (l=<optimized out>, argc=argc@entry=1,
argv=argv@entry=0x7fffffffe308, env=env@entry=0x7fffffffe318)
at dl-init.c:72
j = <optimized out>
jm = <optimized out>
addrs = <optimized out>
init_array = <optimized out>
#2 0x00007ffff7de75fb in call_init (env=0x7fffffffe318, argv=0x7fffffffe308,
argc=1, l=<optimized out>) at dl-init.c:30
No locals.
#3 _dl_init (main_map=main_map@entry=0x73e950, argc=1, argv=0x7fffffffe308,
env=0x7fffffffe318) at dl-init.c:120
preinit_array = <optimized out>
preinit_array_size = <optimized out>
i = 14
#4 0x00007ffff7dec712 in dl_open_worker (a=a@entry=0x7fffffffdec0)
at dl-open.c:575
args = 0x7fffffffdec0
file = <optimized out>
mode = <optimized out>
call_map = <optimized out>
---Type <return> to continue, or q <return> to quit---
dst = <optimized out>
new = <optimized out>
__PRETTY_FUNCTION__ = "dl_open_worker"
r = <optimized out>
reloc_mode = <optimized out>
nmaps = <optimized out>
l = <optimized out>
maps = <optimized out>
relocation_in_progress = <optimized out>
any_tls = <optimized out>
first_static_tls = <optimized out>
#5 0x00007ffff7de7394 in _dl_catch_error (
objname=objname@entry=0x7fffffffdeb0,
errstring=errstring@entry=0x7fffffffdeb8,
mallocedp=mallocedp@entry=0x7fffffffdeaf,
operate=operate@entry=0x7ffff7dec300 <dl_open_worker>,
args=args@entry=0x7fffffffdec0) at dl-error.c:187
errcode = 32767
c = {objname = 0x7fffffffdeb0, errstring = 0x7fffffffdeb8,
malloced = 0x7fffffffdeaf, errcode = 0x7fffffffdd8c, env = {{
__jmpbuf = {140737488347088, -7189635459537260952, 2147483650,
6394320, 140737349720900, 140737354125376,
-7189635459470152088, -7189617580821664152},
__mask_was_saved = -828265453, __saved_mask = {__val = {
54167216, 140733193388051, 0, 140737354103376,
140737488346704, 8589925972, 140737488346688, 457950612,
140737349606454, 4294967295, 7598416, 140737343461712,
140737353966824, 79, 140737354103376, 140737488347072}}}}}
catchp = 0x7ffff7fd46f8
old = <optimized out>
#6 0x00007ffff7debbd9 in _dl_open (
file=0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so",
mode=-2147483646, caller_dlopen=0x7ffff7bc9b44 <mlt_repository_init+292>,
nsid=-2, argc=<optimized out>, argv=<optimized out>, env=0x7fffffffe318)
at dl-open.c:660
args = {
file = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so", mode = -2147483646,
caller_dlopen = 0x7ffff7bc9b44 <mlt_repository_init+292>,
caller_dl_open = 0x7ffff73bdf09 <dlopen_doit+89>, map = 0x73e950,
nsid = 0, argc = 1, argv = 0x7fffffffe308, env = 0x7fffffffe318}
objname = 0x1 <error: Cannot access memory at address 0x1>
errstring = 0x7ffff7dd6c10 <[email protected]> "0\341`\367\377\177"
malloced = false
errcode = <optimized out>
__PRETTY_FUNCTION__ = "_dl_open"
#7 0x00007ffff73bdf09 in dlopen_doit (a=a@entry=0x7fffffffe0f0)
at dlopen.c:66
args = 0x7fffffffe0f0
#8 0x00007ffff7de7394 in _dl_catch_error (objname=0x60f670,
errstring=0x60f678, mallocedp=0x60f668,
operate=0x7ffff73bdeb0 <dlopen_doit>, args=0x7fffffffe0f0)
at dl-error.c:187
errcode = 32767
c = {objname = 0x60f670, errstring = 0x60f678, malloced = 0x60f668,
errcode = 0x7fffffffdfcc, env = {{__jmpbuf = {0,
-7189617283225178520, 140737488347376, 22, 6353584, 0,
-7189635459562426776, -7189617580821664152},
__mask_was_saved = 25, __saved_mask = {__val = {
140737349727746, 255, 6354528, 140737341284016,
140737488347376, 22, 6353584, 0, 140737343933116, 6394080,
140737343974195, 0, 46, 18446744073709551612, 6354528,
140737341284016}}}}}
catchp = 0x7ffff7fd46f8
---Type <return> to continue, or q <return> to quit---
old = <optimized out>
#9 0x00007ffff73be571 in _dlerror_run (
operate=operate@entry=0x7ffff73bdeb0 <dlopen_doit>,
args=args@entry=0x7fffffffe0f0) at dlerror.c:163
result = 0x60f660
#10 0x00007ffff73bdfa1 in __dlopen (file=<optimized out>,
mode=<optimized out>) at dlopen.c:87
args = {
file = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so", mode = 2, new = 0x16,
caller = 0x7ffff7bc9b44 <mlt_repository_init+292>}
#11 0x00007ffff7bc9b44 in mlt_repository_init (
directory=0x1 <error: Cannot access memory at address 0x1>)
at mlt_repository.c:105
flags = -7416
object_name = 0x6191d0 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt/libmltqt.so"
object = 0x0
self = 0x60e020
dir = 0x60f2b0
i = 25
plugin_count = 22
__FUNCTION__ = "mlt_repository_init"
#12 0x00007ffff7bc9378 in mlt_factory_init (
directory=0x7fffffffe687 "/home/juser/local/Shotcut/Shotcut.app/lib/mlt",
directory@entry=0x0) at mlt_factory.c:184
No locals.
#13 0x000000000040229c in main (argc=1, argv=0x7fffffffe308) at melt.c:718
i = <optimized out>
consumer = 0x0
store = 0x0
name = 0x0
profile = 0x0
is_progress = 0
is_silent = 0
is_abort = 0
is_getc = 0
error = 0
backup_profile = <optimized out>
repo = <optimized out>
(gdb)
On the latest master version, I cannot apply the LUT3D effect.
The ffmpeg commands works great:
ffmpeg -i GOPR1519.MP4-stab.avi -vf lut3d=GC_Protune_to_709.cube -c:a copy luted.avi
But when I try the same thing in melt:
melt GOPR1519.MP4-stab.avi -filter avfilter.lut3d av.interp=nearest av.file=GC_Protune_to_709.cube
I get an error :
[filter avfilter.lut3d] Cannot init filter
and a black output…
Any thoughts ?
melt 001.flv in=00:00:10.000 out=00:00:19.960 -consumer avformat:001.mp4 acodec=copy vcodec=copy
[consumer avformat] audio codec copy unrecognised - ignoring
[NULL @ 00546cc0] [consumer avformat] video codec copy unrecognised - ignoring
AVC: nal size 23330846
some error show when i make mlt source, i use msys2
./configure --prefix=/home/lsj/build --enable-gpl --disable-decklink --disable-kdenlive --disable-gtk2 --disable-jackrack --disable-frei0r --disable-linsys --disable-opengl --disable-plus --disable-qt --disable-sox --disable-swfdec --disable-vid.stab --disable-resample
make install
cc -c -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I../../win32 -o composite_line_yuv_sse2_simple.o composite_line_yuv_sse2_simple.c
composite_line_yuv_sse2_simple.c: In function 'composite_line_yuv_sse2_simple':
composite_line_yuv_sse2_simple.c:113:5: error: 'asm' operand has impossible constraints
asm volatile
^~~~~~~
{standard input}: Assembler messages:
{standard input}:110: Error: bad register name %xmm9' {standard input}:111: Error: bad register name
%xmm10'
{standard input}:130: Error: bad register name %xmm8' {standard input}:132: Error: bad register name
%xmm8'
{standard input}:134: Error: bad register name %xmm8' {standard input}:136: Error: bad register name
%xmm8'
{standard input}:139: Error: bad register name `%xmm8'
Building ruby...OK
make[2]: Entering directory '/builddir/build/BUILD/mlt-6.0.0/src/swig/ruby'
g++ -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I. -fPIC -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -mtune=generic -m64 -o mlt_wrap.o -c mlt_wrap.cxx
mlt_wrap.cxx:2001:23: fatal error: mlt++/Mlt.h: No such file or directory
compilation terminated.
Looks to me easy to fix, include should be -I ..
Hi,
If you run segfault.sh, you will see a crash in customer because the resolution of the image is not what is expect, an image with a bad resolution is copied.
It also causes bad frames in video, broken frames, noisy pictures..
Try artifacts.sh
My debugging showed me what for first frame , the producer returns bad resolution, not for the rest.
Related Debian bug: http://bugs.debian.org/764163
This is "-mix" description:
-mix length Add a mix between the last two cuts
The length means frames?
But if the frame rates(fps) of these two cuts are not different, it may cause unexpected result?
And can "-mix" followed by time(00:00:05.000)?
meld --progress video.webm
doesn't exit with an error in version 6.0.0
I've a problem with rtmp camera stream ingest - it seems that whatever the rtsp_transport value I set, it always uses UDP (at least from what I can tell from the logs). This doesn't work with some cameras not implementing ie, PAUSE command, and the auto fallback doesn't seem to work either (neither does setting the flag prefer_tcp in rtsp_flags). Is there something to double check?
Edit: tested under Ubuntu LTS 14.04, melt from the main repository.
For a long time I have been struggling with MLT (as used in kdenlive, which I use) ignoring the first two frames of clips that my camera recorded. Since not only MLT, but also other software using ffmpeg exhibited similar behaviour, I was unable to really track down the cause of this - until very recently.
I had opened an issue with mpv, which was also not displaying the first frames of such files, and that was recently fixed with a work-around, see mpv-player/mpv#1341 for reference.
There is also a ticket and some sort-of-fix to ffmpeg (as of May 2015) for what looks like the same problem here: https://trac.ffmpeg.org/ticket/4554
Based on these findings, I tried to figure out how to fix MLT such that kdenlive would also use the first frames of such MP4 / H.264 files with b-frames.
To reproduce the issue, please consider this file: http://filebin.ca/1knlOxMESIbK/P1000457.MP4 (3.5 MB < 3 seconds of 1280x720p25 video as recorded by a Panasonic camera, no software conversion in between).
It shows a screen with a millisecond counter, so it's easy to tell exactly what frame is on display.
When replayed in the camera or with the latest (fixed) mpv version, the first frame shown shows time: 3685ms on the display. But MLT using software (like kdenlive) displays the frame showing "3768ms" as the first frame. And even worse, the last frames of the clip will be duplicates - causing ugly transitions to any subsequent clip.
I found that mlt/src/modules/avformat/producer_avformat.c, function find_first_pts(), would return the PTS of the third frame for such files. The DTS of the packet the function looks at is negative. I'm not sure I fully understood the whole chain of events leading up to the wrong "first_pts" value, but I was able to implement some work-around that works for me:
--- src/modules/avformat/producer_avformat.c.orig 2015-10-25 01:24:49.320922931 +0200
+++ src/modules/avformat/producer_avformat.c 2015-10-25 02:01:59.453888378 +0200
@@ -781,6 +781,18 @@
{
self->invalid_pts_counter += pts == AV_NOPTS_VALUE;
self->invalid_dts_counter += dts == AV_NOPTS_VALUE;
+
+ if ((dts != AV_NOPTS_VALUE) && (dts < 0)) {
+ // Decoding Time Stamps with negative values are reported by ffmpeg code for
+ // (at least) MP4 files containing h.264 video using b-frames.
+ // For reasons not understood yet, the first PTS computed then is that of the
+ // third frame, causing MLT to display the third frame as if it was the first.
+ // This if-clause is meant to catch and work around this issue - if there is
+ // a valid, but negative DTS value, we just guess that the first valid
+ // Presentation Time Stamp is == 0.
+ return 0;
+ }
+
if ( ( self->invalid_pts_counter <= self->invalid_dts_counter
|| dts == AV_NOPTS_VALUE ) && pts != AV_NOPTS_VALUE )
return pts;
I'm kind of sure there are better / cleaner methods than the crude fix above to fix the issue, maybe you can implement one?
Currently we are not able to build cerain software without depending on mlt-git. See nfnty/pkgbuilds#3 Would it be possible for you to release a new version of mlt?
Related Debian bug: http://bugs.debian.org/763911
Dear,
I want to speed up specific clip of a movie([00:01:00, 00:02:00] of sample.mp4), for some movies command below works:
melt framebuffer:sample.mp4?2 in=00:00:30.000 out=00:01:00.00
but for some other movies, command like:
melt framebuffer:sample.mp4?2 in=00:01:00.000 out=00:01:30.00
It confused me.
PS: Could I do speed up operation in filter, like ffmpeg -vf setpts=0.5*PTS?
Trying to compile it on CentOS 6 but getting a lot of errors on avformat module:
make[2]: Entering directory `/root/mlt/src/modules/avformat'
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -DFILTEDCODECS -DAVDEVICE -c -o filter_avcolour_space.o filter_avcolour_space.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -DFILTEDCODECS -DAVDEVICE -c -o filter_avdeinterlace.o filter_avdeinterlace.c
cc -I../.. -DARCH_X86_64 -Wall -DPIC -O2 -pipe -fno-tree-dominator-opts -fno-tree-pre -ffast-math -DUSE_MMX -DUSE_SSE -DUSE_SSE2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCPIC -pthread -DAVDATADIR=\"/usr/share/ffmpeg/\" -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -I/usr/include/ffmpeg -DFILTEDCODECS -DAVDEVICE -c -o filter_swscale.o filter_swscale.c
filter_swscale.c: In function ‘convert_mlt_to_av_cs’:
filter_swscale.c:40: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_swscale.c:40: error: (Each undeclared identifier is reported only once
filter_swscale.c:40: error: for each function it appears in.)
filter_swscale.c:44: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_swscale.c:47: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_swscale.c:50: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘convert_mlt_to_av_cs’:
filter_avcolour_space.c:50: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_avcolour_space.c:50: error: (Each undeclared identifier is reported only once
filter_avcolour_space.c:50: error: for each function it appears in.)
filter_avcolour_space.c:54: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_avcolour_space.c:57: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avcolour_space.c:60: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘av_convert_image’:
filter_avcolour_space.c:126: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avcolour_space.c:138: error: ‘AV_PIX_FMT_RGB24’ undeclared (first use in this function)
filter_avcolour_space.c:138: error: ‘AV_PIX_FMT_RGBA’ undeclared (first use in this function)
filter_avcolour_space.c: In function ‘filter_avcolour_space_init’:
filter_avcolour_space.c:323: error: ‘AV_PIX_FMT_RGB32’ undeclared (first use in this function)
filter_avdeinterlace.c: In function ‘mlt_avpicture_deinterlace’:
filter_avdeinterlace.c:237: error: ‘AV_PIX_FMT_YUV420P’ undeclared (first use in this function)
filter_avdeinterlace.c:237: error: (Each undeclared identifier is reported only once
filter_avdeinterlace.c:237: error: for each function it appears in.)
filter_avdeinterlace.c:238: error: ‘AV_PIX_FMT_YUV422P’ undeclared (first use in this function)
filter_avdeinterlace.c:239: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_avdeinterlace.c:240: error: ‘AV_PIX_FMT_YUV444P’ undeclared (first use in this function)
filter_avdeinterlace.c:241: error: ‘AV_PIX_FMT_YUV411P’ undeclared (first use in this function)
filter_avdeinterlace.c: In function ‘filter_get_image’:
filter_avdeinterlace.c:315: error: ‘AV_PIX_FMT_YUYV422’ undeclared (first use in this function)
filter_swscale.c: In function ‘filter_scale’:
filter_swscale.c:145: error: ‘AV_PIX_FMT_GRAY8’ undeclared (first use in this function)
make[2]: *** [filter_avcolour_space.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [filter_avdeinterlace.o] Error 1
filter_swscale.c: In function ‘filter_swscale_init’:
filter_swscale.c:179: error: ‘AV_PIX_FMT_RGB32’ undeclared (first use in this function)
make[2]: *** [filter_swscale.o] Error 1
make[2]: Leaving directory `/root/mlt/src/modules/avformat'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/root/mlt/src/modules'
make: *** [all] Error 1
Please help.
Regards.
I do some editing in Shotcut, but I find something interesting: Shotcut sets out = total_frames - 1, such as:
a.mp4, total frames length: 3200, then Shotcut melt xml like: in=0 out=3199
What does it do? THX
mlt 0.9.6 crashes at memcpy. See the stacktrace (I believe it is meaningful and line numbers are correct):
Thread 11 (Thread 0x7f0d3208d700 (LWP 4775)):
[KCrash Handler]
#5 0x00007f0d62c32026 in __memcpy_sse2_unaligned () at /lib64/libc.so.6
#6 0x00007f0d4fd2471d in producer_get_audio (__len=4, __src=<optimized out>, __dest=<optimized out>) at /usr/include/bits/string3.h:51
#7 0x00007f0d4fd2471d in producer_get_audio (bytes_per_sample=4, channels=2, samples=4608, src=0x7f0d2811eca0, dest=<optimized out>) at producer_avformat.c:1999
#8 0x00007f0d4fd2471d in producer_get_audio (fps=24, timecode=<optimized out>, samples=2000, pkt=..., ignore=0x7f0d3208ca84, self=0x50ece60) at producer_avformat.c:2095
#9 0x00007f0d4fd2471d in producer_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cbcc, samples=samples@entry=0x7f0d3208cdfc) at producer_avformat.c:2306
#10 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cbcc, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#11 0x00007f0d4576bab1 in filter_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at filter_audiochannels.c:32
#12 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#13 0x00007f0d45efb28f in resample_get_audio (frame=frame@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at filter_resample.c:53
#14 0x00007f0d64775be9 in mlt_frame_get_audio (self=self@entry=0x7f0d28000af0, buffer=buffer@entry=0x7f0d3208ce00, format=format@entry=0x3271620, frequency=frequency@entry=0x7f0d3208cdf8, channels=channels@entry=0x7f0d3208cdf4, samples=samples@entry=0x7f0d3208cdfc) at mlt_frame.c:749
#15 0x00007f0d6478852a in consumer_read_ahead_thread (arg=0x3c58520) at mlt_consumer.c:815
#16 0x00007f0d649a20a4 in start_thread () at /lib64/libpthread.so.0
#17 0x00007f0d62c8708d in clone () at /lib64/libc.so.6
I'm trying to use melt as a playout unit within an nginx rtmp server. Running melt from the shell works fine, but the same command fails for some reason when called from within the nginx daemon. Nginx debug messages didn't really seem to tell me anything useful. I'm assuming the problem is with melt, because ffmpeg, gst-luanch, cvlc, etc. work just fine.
I want to generate video.ogg that display cover.png the whole time audio.ogg is played.
Se this for example: https://www.youtube.com/watch?v=7AKsW57QkJE
How can I do that?
Dear Dan,
I'm getting a crash when using both webvfx and audiowaveform on the same project.
I'm running melt freshly compiled from master branch. The same happens with v6.0.0.
waveform.xml
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
<profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
<!-- sources -->
<producer id="test_video">
<property name="resource">../melt-tests/penguin.mp4</property>
</producer>
<producer id="music">
<property name="resource">test_track.mp3</property>
</producer>
<producer id="title">
<property name="mlt_service">webvfx</property>
<property name="resource">plain:title.html</property>
<property name="transparent">1</property>
</producer>
<!-- tracks -->
<tractor id="folder_fx">
<multitrack>
<tractor id="folder">
<multitrack>
<tractor id="video_track">
<multitrack>
<tractor id="track">
<playlist id="track_pl">
<entry producer="title" in="0" out="100"/>
<entry producer="test_video" in="0" out="91"/>
</playlist>
</tractor>
</multitrack>
</tractor>
<playlist id="music_track">
<entry producer="music" in="0" out="191" />
</playlist>
</multitrack>
<!-- transitions -->
</tractor>
</multitrack>
<!-- effects -->
<filter id="audiowaveform">
<property name="mlt_service">audiowaveform</property>
<property name="show_channel">1</property>
<property name="rect">0,20%,100%,60%</property>
<property name="color.1">0xffffff80</property>
<property name="thickness">4</property>
</filter>
</tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
WARNING: QApplication was not created in the main() thread.
(process:16102): GLib-CRITICAL **: g_main_context_push_thread_default: assertion 'acquired_context' failed
Segmentation fault (core dumped)
waveform.xml
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
<profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
<!-- sources -->
<producer id="test_video">
<property name="resource">../melt-tests/penguin.mp4</property>
</producer>
<producer id="music">
<property name="resource">test_track.mp3</property>
</producer>
<!-- <producer id="title">
<property name="mlt_service">webvfx</property>
<property name="resource">plain:title.html</property>
<property name="transparent">1</property>
</producer> -->
<!-- tracks -->
<tractor id="folder_fx">
<multitrack>
<tractor id="folder">
<multitrack>
<tractor id="video_track">
<multitrack>
<tractor id="track">
<playlist id="track_pl">
<entry producer="test_video" in="0" out="100"/>
<entry producer="test_video" in="0" out="91"/>
</playlist>
</tractor>
</multitrack>
</tractor>
<playlist id="music_track">
<entry producer="music" in="0" out="191" />
</playlist>
</multitrack>
<!-- transitions -->
</tractor>
</multitrack>
<!-- effects -->
<filter id="audiowaveform">
<property name="mlt_service">audiowaveform</property>
<property name="show_channel">1</property>
<property name="rect">0,20%,100%,60%</property>
<property name="color.1">0xffffff80</property>
<property name="thickness">4</property>
</filter>
</tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
[filter audiowaveform] Audio not preprocessed. Potential audio distortion.
Current Frame: 192, percentage: 99
waveform.xml
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8">
<profile width="640" height="360" display_aspect_den="9" display_aspect_num="16" sample_aspect_num="1" sample_aspect_den="1"/>
<!-- sources -->
<producer id="test_video">
<property name="resource">../melt-tests/penguin.mp4</property>
</producer>
<producer id="music">
<property name="resource">test_track.mp3</property>
</producer>
<producer id="title">
<property name="mlt_service">webvfx</property>
<property name="resource">plain:title.html</property>
<property name="transparent">1</property>
</producer>
<!-- tracks -->
<tractor id="folder_fx">
<multitrack>
<tractor id="folder">
<multitrack>
<tractor id="video_track">
<multitrack>
<tractor id="track">
<playlist id="track_pl">
<entry producer="title" in="0" out="100"/>
<entry producer="test_video" in="0" out="91"/>
</playlist>
</tractor>
</multitrack>
</tractor>
<playlist id="music_track">
<entry producer="music" in="0" out="191" />
</playlist>
</multitrack>
<!-- transitions -->
</tractor>
</multitrack>
<!-- effects -->
<!-- <filter id="audiowaveform">
<property name="mlt_service">audiowaveform</property>
<property name="show_channel">1</property>
<property name="rect">0,20%,100%,60%</property>
<property name="color.1">0xffffff80</property>
<property name="thickness">4</property>
</filter> -->
</tractor>
</mlt>
$ DISPLAY=:1.0 melt waveform.xml -progress -consumer avformat:waveform.mp4 strict=experimental
WARNING: QApplication was not created in the main() thread.
[libx264 @ 0x7f7c6c0c7a80] interlace + weightp is not implemented
Current Frame: 192, percentage: 99
test.html
<html>
<head>
</head>
<body>
<h1 style="color: #FFF;">TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST</h1>
</body>
Many thanks in advance for your help !!
All the best
Geoffroy
I am trying to make a video where I have a clip in a playlist in a playlsit. Which is to say, The main producer is a playlist with one producer, which is another playlist with one producer, which is a m4v video clip.
I output the result to an xml file called out.xml
, and then use the melt
command line application to run it:
melt out.xml
When I do this the clip plays the first frame and then freezes. Additionally, when I add other clips to the inner playlist only the last clip is shown. Is this a bug in the XML producer or consumer, or am I missing something here?
For reference, the following is the xml file:
<?xml version="1.0" encoding="utf-8"?>
<mlt LC_NUMERIC="en_US.UTF-8" version="6.2.0" root="/Users/leif/src/video/private" title="Anonymous Submission" producer="playlist0">
<profile description="DV/DVD PAL" width="720" height="576" progressive="0" sample_aspect_num="16" sample_aspect_den="15" display_aspect_num="4" display_aspect_den="3" frame_rate_num="25" frame_rate_den="1" colorspace="601"/>
<producer id="producer0" in="0" out="5001">
<property name="length">5002</property>
<property name="eof">pause</property>
<property name="resource">/Users/leif/demo.mkv</property>
<property name="meta.media.nb_streams">2</property>
<property name="meta.media.0.stream.type">video</property>
<property name="meta.media.0.stream.frame_rate">30</property>
<property name="meta.media.0.stream.sample_aspect_ratio">1</property>
<property name="meta.media.0.codec.width">1920</property>
<property name="meta.media.0.codec.height">1080</property>
<property name="meta.media.0.codec.rotate">0</property>
<property name="meta.media.0.codec.frame_rate">1000</property>
<property name="meta.media.0.codec.pix_fmt">yuv420p</property>
<property name="meta.media.0.codec.sample_aspect_ratio">0</property>
<property name="meta.media.0.codec.colorspace">709</property>
<property name="meta.media.0.codec.name">vp9</property>
<property name="meta.media.0.codec.long_name">Google VP9</property>
<property name="meta.media.0.codec.bit_rate">0</property>
<property name="meta.attr.0.stream.LANGUAGE.markup">eng</property>
<property name="meta.attr.0.stream.DURATION.markup">00:03:20.000000000</property>
<property name="meta.media.1.stream.type">audio</property>
<property name="meta.media.1.codec.sample_fmt">fltp</property>
<property name="meta.media.1.codec.sample_rate">44100</property>
<property name="meta.media.1.codec.channels">2</property>
<property name="meta.media.1.codec.name">aac</property>
<property name="meta.media.1.codec.long_name">AAC (Advanced Audio Coding)</property>
<property name="meta.media.1.codec.bit_rate">0</property>
<property name="meta.attr.1.stream.CREATION_TIME.markup">2015-05-18 08:29:00</property>
<property name="meta.attr.1.stream.HANDLER_NAME.markup">SoundHandler</property>
<property name="meta.attr.1.stream.DURATION.markup">00:03:20.086000000</property>
<property name="meta.attr.ENCODER.markup">Lavf56.40.101</property>
<property name="seekable">1</property>
<property name="meta.media.sample_aspect_num">1</property>
<property name="meta.media.sample_aspect_den">1</property>
<property name="aspect_ratio">1</property>
<property name="audio_index">1</property>
<property name="video_index">0</property>
<property name="mute_on_pause">1</property>
<property name="mlt_service">avformat</property>
</producer>
<playlist id="playlist1">
<entry producer="producer0" in="0" out="5001"/>
</playlist>
<playlist id="playlist0" title="Anonymous Submission">
<entry producer="playlist1" in="" out=""/>
</playlist>
</mlt>
Any suggestions? Thank you.
mlt.x86_64: E: incorrect-fsf-address /usr/share/licenses/mlt/COPYING
mlt.x86_64: E: incorrect-fsf-address /usr/share/licenses/mlt/GPL
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_jackrack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_shape.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/producer_slowmotion.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/filter_deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/producer_qimage.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_mono.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_autotrack_rectangle.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/producer_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_lumaliftgaingamma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma_hold.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/filter_resample.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_audiolevel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_volume.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_rotoscoping.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/cpu_accel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.cpp
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_burn.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/sad_sse.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plus/interp.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_vismv.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/producer_pgm.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_telecide.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_motion_est.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/xineutils.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/melt.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab2.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_jackrack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_volume.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/producer_pgm.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/arrow_code.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_lumaliftgaingamma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_burn.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab2.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/xineutils.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/producer_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/stabilize.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_motion_est.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/resample/filter_resample.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_settings.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/filter_ladspa.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plus/interp.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_rotoscoping.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_vismv.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/factory.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/filter_videostab.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/deinterlace.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform_image.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/plusgpl/filter_telecide.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/filter_autotrack_rectangle.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/sad_sse.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/cpu_accel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/motion_est/producer_slowmotion.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/io.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/jack_rack.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/melt/melt.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/lock_free_fifo.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_desc.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/normalize/filter_audiolevel.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_mono.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/producer_qimage.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/process.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/filter_deinterlace.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/qt/qimage_wrapper.cpp
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/xine/yadif.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_chroma_hold.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/jackrack/plugin_mgr.h
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/videostab/transform.c
mlt-debuginfo.x86_64: E: incorrect-fsf-address /usr/src/debug/mlt-6.2.0/src/modules/vmfx/filter_shape.c
please, at least, redownload https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt to mlt/COPYING and https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt to mlt/GPL
Hi,
While browsing your code I found some code that may cause problem under some circumstance.
Location:
mlt_pool.c
static void *pool_fetch( mlt_pool self
This seems to be wrong:mlt_release release = mlt_alloc( self->size )
It should be mlt_release release = mlt_alloc( self->size + sizeof( struct mlt_release_s )) ;
Reason? the caller expects to get size but it fact, the caller gets size- sizeof( struct mlt_release_s );
See this line: ptr = ( char * )release + sizeof( struct mlt_release_s );
Allocated size is reduced by mit_release_s.....
J.
When using an in point on a clip, it appears the avformat producer produces audio delayed by one frame with some compressed formats:
http://stackoverflow.com/questions/29229923/first-frame-in-rendered-kdenlive-project-is-mute-why
Hi, next Fedora version (F25) got php 7.0 , and php module doesn't build , any plans for php 7 ?
Thanks
I tried running this demo locally and I'm assuming it's not actually expecting those strings as actual files. I get the following errors.
Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die.txt"
Failed to load "+You killed my father.txt"
Failed to load "+My name is Inigo Montoya.txt"
Failed to load "+Prepare to die.txt"
Failed to load "+You killed my father.txt"
Maybe this is related to #26?
Have tried
v0.8.4
v0.8.6
v0.8.8
Builds fine w/ <= v0.8.2
Output from build using
./configure --prefix=/usr/local --enable-gpl --disable-gtk2
also doesn't build with one or both gpl, gtk2 options removed, with same error
In file included from MltParser.cpp:21:
In file included from ./Mlt.h:42:
./MltTokeniser.h:35:52: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
Tokeniser( char *text = NULL, char *delimiter = " " );
^
./MltTokeniser.h:37:45: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
int parse( char *text, char *delimiter = " " );
^
2 warnings generated.
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltPlaylist.o MltPlaylist.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltProducer.o MltProducer.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltProfile.o MltProfile.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltProperties.o MltProperties.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltPushConsumer.o MltPushConsumer.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltRepository.o MltRepository.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltService.o MltService.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltTokeniser.o MltTokeniser.cpp
In file included from MltTokeniser.cpp:22:
./MltTokeniser.h:35:52: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
Tokeniser( char *text = NULL, char *delimiter = " " );
^
./MltTokeniser.h:37:45: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
int parse( char *text, char *delimiter = " " );
^
2 warnings generated.
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltTractor.o MltTractor.cpp
c++ -D__DARWIN__ -Wall -fPIC -I.. -DVERSION=\"0.8.4\" -c -o MltTransition.o MltTransition.cpp
c++ -dynamiclib -single_module -install_name /usr/local/lib/libmlt++.3.dylib -current_version 0.8.4 -compatibility_version 3 -o libmlt++.0.8.4.dylib MltConsumer.o MltDeque.o MltEvent.o MltFactory.o MltField.o MltFilter.o MltFilteredConsumer.o MltFilteredProducer.o MltFrame.o MltGeometry.o MltMultitrack.o MltParser.o MltPlaylist.o MltProducer.o MltProfile.o MltProperties.o MltPushConsumer.o MltRepository.o MltService.o MltTokeniser.o MltTractor.o MltTransition.o -L/usr/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa -L../framework -lmlt
Undefined symbols for architecture x86_64:
"_mlt_service_set_profile", referenced from:
Mlt::Service::set_profile(Mlt::Profile&) in MltService.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [libmlt++.0.8.4.dylib] Error 1
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.