On Wed, Feb 15, 2012 at 6:49 AM, bettinger cédric <[email protected]> wrote: > Ok so here are the 4 files I tried. The first one come from open shot. The > second one from inkscape. The third one from gimp. The last one was created > with Qt.
works for me: melt color:red out=50 ~/Downloads/cedric_01.svg out=50 -mix 50 -mixer composite > > 2012/2/15 Dan Dennedy <[email protected]> >> >> On Tue, Feb 14, 2012 at 3:30 PM, bettinger cédric <[email protected]> >> wrote: >> >>> I would suggest looking at Brian's dynamictext filter, but >> >>> it may take some additional effort to get the gdk/pango thing working >> > >> > Right now I can't try this plugin since I installed mlt with the ubuntu >> > synaptic manager...and my version of mlt is 0.6.2. But may be I should >> > try >> > to compile the last version...I am just afraid of messing up and having >> > no >> > mlt version working. I think I will try to compile the last version of >> > mlt++ >> > on a virtual ubuntu machine with virtual box. >> > >> >>> I am using Qt to draw on >> >>> the video image. Also, it does not need a composite transition, but >> >>> the text for that is very specific to that effect. >> > >> > I am not sure of what you are talking about ? Are you saying that I >> > could >> > draw every frame of a producer with Qt ? or I could draw onto the qt >> > widget >> > ? >> >> There is a new transition in mlt. It uses Qt to draw text on the >> frames. Something similar could be done, but not right now. I guess >> continue on your current route. >> >> >>> FYI, distort=1 is a dangerous approach. It depends on how you generate >> >>> the SVG, but the name "distort" is intentionally dangerous sounding. >> > >> > I took that from open shot xml. I don't really know what it is, but >> > without >> > that the movie doesn't have the right size I want. >> > >> >>> Change the 50 to 100. >> > >> > Yeah I tried that as I tried 0 but either I only see my text with a >> > black >> > background or I only see the movie. >> > If I remove geometry I only see the text with a black background while >> > the >> > movie is playing. I don't understand that since the image has a >> > transparent >> > background. >> >> No, then image does not have a transparent background, or if it really >> does the image loader is not supporting it. Send the SVG you are >> using. >> >> > >> > >> > >> > 2012/2/14 Dan Dennedy <[email protected]> >> >> >> >> On Tue, Feb 14, 2012 at 7:56 AM, bettinger cédric <[email protected]> >> >> wrote: >> >> >>> Only the kdenlivetitle producer loads kdenlivetitle xml, but you >> >> >>> created a color producer. >> >> > >> >> > Ok I didn't know that. Finally I couldn't fint out how kdenlive add >> >> > text >> >> > to >> >> > a video, but I think I alsmot understood how open shot does. >> >> > Now I created an svg image with text and a transparent background and >> >> > I >> >> > load >> >> >> >> For the application you described, do you really want to generate SVG >> >> for each text item? Same thing could be said for kdenlivetitle. Even >> >> if you can embed the XML within MLT XML, it seems a rather bloated >> >> approach. I would suggest looking at Brian's dynamictext filter, but >> >> it may take some additional effort to get the gdk/pango thing working >> >> across platforms. For the new vqm transition, I am using Qt to draw on >> >> the video image. Also, it does not need a composite transition, but >> >> the text for that is very specific to that effect. (Just thinking >> >> aloud here about best approach for you.) >> >> >> >> > it with a producer. I just have a problem with the composite >> >> > transition. >> >> > I >> >> > have been able to mix a movie with a text. But I don't get the >> >> > expected >> >> > results : either I just see the text or with the geometry property I >> >> > see >> >> > the >> >> > text with transparence. >> >> >> >> Text with transparency sounds like a good thing. >> >> >> >> > Here is my code : >> >> > >> >> > void MainWindow::openVideo(){ >> >> > QString fileName = QFileDialog::getOpenFileName(this); >> >> > if(!fileName.isNull()){ >> >> > Mlt::Producer *producer = new Mlt::Producer(*m_profile, >> >> > fileName.toUtf8().constData()); >> >> > if(producer->is_valid()){ >> >> > m_playlist = new Mlt::Playlist(); >> >> > Mlt::Producer *subTitleProducer = new Mlt::Producer(*m_profile, >> >> > "cedric_01.svg"); >> >> > Mlt::Transition *transition = Mlt::Factory::transition(*m_profile, >> >> > "composite", NULL); >> >> > //I tried to change some propertie according >> >> > to >> >> > what >> >> > I can see in the kdenlive or open shot xml when I add a composition. >> >> > Mlt::Properties *prop = new >> >> > Mlt::Properties(transition->get_properties()); >> >> > prop->set("geometry", "0=0%/0%:100%x100%:50"); >> >> >> >> The "50" at the end of that property value means 50% opacity. >> >> >> >> > prop->set("distort", 1); >> >> >> >> FYI, distort=1 is a dangerous approach. It depends on how you generate >> >> the SVG, but the name "distort" is intentionally dangerous sounding. >> >> >> >> > prop->set("fill", 1); >> >> > m_playlist->append(*subTitleProducer, 0, 400); >> >> > m_playlist->append(*producer, 0); >> >> > m_playlist->mix(0, 400, transition); >> >> > m_consumer->stop(); >> >> > m_consumer->connect(*m_playlist); >> >> > delete m_producer; >> >> > m_producer = producer; >> >> > /* >> >> > m_consumer->start(); >> >> > play(); >> >> > } >> >> > } >> >> > m_consumer->set ("refresh", 1); >> >> > } >> >> > >> >> > So when I open a video, I hear the sound directly. If I remove the >> >> > geometry >> >> > propertie, from the frame 0 to 400 I only see my svg image (my image >> >> > is >> >> > some >> >> > text over a transparent background but I got a black background) and >> >> > then I >> >> > see the movie that already started playing. I feel that the >> >> > transparence >> >> > of >> >> > the svg file is not take into account. >> >> >> >> I suppose the composite transition does not have a good default here. >> >> I will look into it soon. >> >> >> >> > Otherwise with the geometry propertie, I can see the movie and the >> >> > text >> >> > but >> >> > the text is with 50% of transparence and the movie seems a little >> >> > more >> >> > darker. >> >> > >> >> > May be someone know how I could do that properly ? >> >> >> >> Change the 50 to 100. >> >> >> >> > Thank you, >> >> > >> >> > Cédric >> >> > >> >> > >> >> > 2012/1/31 Dan Dennedy <[email protected]> >> >> >> >> >> >> On Sun, Jan 29, 2012 at 10:30 AM, bettinger cédric >> >> >> <[email protected]> >> >> >> wrote: >> >> >> > Hello, >> >> >> > >> >> >> > I am trying to figure out how I could add some text to a video I >> >> >> > am >> >> >> > playing >> >> >> > in a qt widget. I am trying to add some text to a video I am >> >> >> > reading >> >> >> > from >> >> >> > the frame 100 to 324. >> >> >> > Here is a part of my code : >> >> >> > void MainWindow::openVideo(){ >> >> >> > QString fileName = QFileDialog::getOpenFileName(this); >> >> >> > if(!fileName.isNull()){ >> >> >> > Mlt::Producer *producer = new Mlt::Producer(*m_profile, >> >> >> > fileName.toUtf8().constData()); >> >> >> > if(producer->is_valid()){ >> >> >> > m_playlist = new Mlt::Playlist(); >> >> >> > m_playlist->append(*producer); >> >> >> > m_consumer->stop(); >> >> >> > m_consumer->connect(*m_playlist); >> >> >> > delete m_producer; >> >> >> > m_producer = producer; >> >> >> > >> >> >> > //*//Adding subtitle >> >> >> > Mlt::Producer *subTitleProducer = new Mlt::Producer(*m_profile, >> >> >> > "color:"); >> >> >> > char* subTitleData = "<kdenlivetitle width=\"1920\" >> >> >> > height=\"1080\" >> >> >> >> >> >> Only the kdenlivetitle producer loads kdenlivetitle xml, but you >> >> >> created a color producer. >> >> >> >> >> >> >> >> >> > out=\"324\"><item z-index=\"0\" >> >> >> > type=\"QGraphicsTextItem\"><position >> >> >> > x=\"220\" y=\"105.5555555555556\"> >> >> >> > <transform>1,0,0,0,1,0,0,0,1</transform> >> >> >> > </position> <content font-color=\"255,0,0,255\" >> >> >> > font-outline-color=\"0,0,0,255\" font-pixel-size=\"100\" >> >> >> > font-italic=\"0\" >> >> >> > font-underline=\"0\" font-weight=\"50\" font=\"Sans Serif\" >> >> >> > font-outline=\"0\">SOME TEXT THAT WILL BE SUBTITLES</content> >> >> >> > </item> >> >> >> > <startviewport rect=\"0,0,1920,1080\"/> <endviewport >> >> >> > rect=\"0,0,1920,1080\"/> <background >> >> >> > color=\"0,0,0,0\"/></kdenlivetitle>\""; >> >> >> > subTitleProducer->set("xmldata", subTitleData); >> >> >> > Mlt::Transition *transition = new Mlt::Transition(*m_profile, >> >> >> > "Composite"); >> >> >> > transition->connect(*m_playlist, 1, 0); >> >> >> > m_playlist->insert_at(100, subTitleProducer); >> >> >> > //*///End adding subtitle >> >> >> > m_consumer->start(); >> >> >> > play(); >> >> >> > } >> >> >> > fps = m_producer->get_fps(); >> >> >> > } >> >> >> > // If file invalid, then on some platforms the dialog messes up >> >> >> > SDL. >> >> >> > m_consumer->set ("refresh", 1); >> >> >> > } >> >> >> > >> >> >> > You can see my entire code here : >> >> >> > >> >> >> > >> >> >> > >> >> >> > http://code.google.com/p/testqtmlt/source/browse/trunk/08subtitleAndEncodage?spec=svn21&r=21 >> >> >> > >> >> >> > What I don't understand is how to connect a transition and >> >> >> > especially >> >> >> > what >> >> >> > are the integers a_track and b_track and if >> >> >> > m_playlist->insert_at(100, >> >> >> > subTitleProducer); is the right thing to do. >> >> >> > >> >> >> > Someone know how I could do it right ? >> >> >> >> >> >> You need to learn how to prototype compositions with melt and/or xml >> >> >> possibly using the demos and other tools like OpenShot or Kdenlive >> >> >> to >> >> >> see how they compose things. Then, you may want to look at the code >> >> >> of >> >> >> producer_melt.c to see how it uses the API to "connect a >> >> >> transition." >> >> >> Even I do these things; I do not do everything from memory. >> >> >> >> >> >> >> >> >> -- >> >> >> +-DRD-+ >> >> > >> > >> > >> >> >> >> -- >> +-DRD-+ > > -- +-DRD-+ ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Mlt-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mlt-devel
