Recherche avancée

Médias (0)

Mot : - Tags -/gis

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (73)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

Sur d’autres sites (11114)

  • FFMpeg process created from Java on CentOS doesn't exit

    21 juin 2017, par Donz

    I need to convert a lot of wave files simultaneously. About 300 files in parallel. And new files come constantly. I use ffmpeg process call from my Java 1.8 app, which is running on CentOS. I know that I have to read error and input streams for making created process from Java possible to exit.

    My code after several expirements :

       private void ffmpegconverter(String fileIn, String fileOut){
       String[] comand = new String[]{"ffmpeg", "-v", "-8", "-i", fileIn, "-acodec", "pcm_s16le", fileOut};

       Process process = null;
       BufferedReader reader = null;
       try {
           ProcessBuilder pb = new ProcessBuilder(comand);
           pb.redirectErrorStream(true);
           process = pb.start();

           //Reading from error and standard output console buffer of process. Or it could halts because of nobody
           //reads its buffer
           reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
           String s;
           //noinspection StatementWithEmptyBody
           while ((s = reader.readLine()) != null) {
               log.info(Thread.currentThread().getName() + " with fileIn " + fileIn + " and fileOut " + fileOut + " writes " + s);
               //Ignored as we just need to empty the output buffer from process
           }
           log.info(Thread.currentThread().getName() + " ffmpeg process will be waited for");
           if (process.waitFor( 10, TimeUnit.SECONDS )) {
               log.info(Thread.currentThread().getName() + " ffmpeg process exited normally");
           } else {
               log.info(Thread.currentThread().getName() + " ffmpeg process timed out and will be killed");
           }

       } catch (IOException | InterruptedException e) {
           log.error(Thread.currentThread().getName() + "Error during ffmpeg process executing", e);
       } finally {
           if (process != null) {
               if (reader != null) {
                   try {
                       reader.close();
                   } catch (IOException e) {
                       log.error("Error during closing the process streams reader", e);
                   }
               }
               try {
                   process.getOutputStream().close();
               } catch (IOException e) {
                   log.error("Error during closing the process output stream", e);
               }
               process.destroyForcibly();
               log.info(Thread.currentThread().getName() + " ffmpeg process " + process + " must be dead now");
           }
       }
    }

    If I run separate test with this code it goes normally. But in my app I have hundreds of RUNNING deamon threads "process reaper" which are waiting for ffmpeg process finish. In my real app ffpmeg is started from timer thread. Also I have another activity in separate threads, but I don’t think that this is the problem. Max CPU consume is about 10%.

    Here is that I usual see in thread dump :

    "process reaper" #454 daemon prio=10 os_prio=0 tid=0x00007f641c007000 nid=0x5247 runnable [0x00007f63ec063000]
      java.lang.Thread.State: RUNNABLE
       at java.lang.UNIXProcess.waitForProcessExit(Native Method)
       at java.lang.UNIXProcess.lambda$initStreams$3(UNIXProcess.java:289)
       at java.lang.UNIXProcess$$Lambda$32/2113551491.run(Unknown Source)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
       at java.lang.Thread.run(Thread.java:745)

    What am I doing wrong ?

    UPD :
    My app accepts a lot of connects with voice traffic. So I have about 300-500 another "good" threads in every moment. Could it be the reason ? Deamon threads have low priority. But I don’t beleive that they really can’t do their jobs in one hour. Ususally it takes some tens of millis.

    UPD2 :
    My synthetic test that runs fine. I tried with new threads option and without it just with straigt calling of run method.

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class FFmpegConvert {

       public static void main(String[] args) throws Exception {

           FFmpegConvert f = new FFmpegConvert();
           f.processDir(args[0], args[1], args.length > 2);
       }

       private void processDir(String dirPath, String dirOutPath, boolean isNewThread) {
           File dir = new File(dirPath);
           File dirOut = new File(dirOutPath);
           if(!dirOut.exists()){
               dirOut.mkdir();
           }
           for (int i = 0; i < 1000; i++) {
               for (File f : dir.listFiles()) {
                   try {
                       System.out.println(f.getName());
                       FFmpegRunner fFmpegRunner = new FFmpegRunner(f.getAbsolutePath(), dirOut.getAbsolutePath() + "/" + System.currentTimeMillis() + f.getName());
                       if (isNewThread) {
                           new Thread(fFmpegRunner).start();
                       } else {
                           fFmpegRunner.run();
                       }
                   } catch (Exception e) {
                       e.printStackTrace();
                   }
               }
           }
       }

       class FFmpegRunner implements Runnable {
           private String fileIn;
           private String fileOut;

           FFmpegRunner(String fileIn, String fileOut) {
               this.fileIn = fileIn;
               this.fileOut = fileOut;
           }

           @Override
           public void run() {
               try {
                   ffmpegconverter(fileIn, fileOut);
               } catch (Exception e) {
                   e.printStackTrace();
               }
           }

           private void ffmpegconverter(String fileIn, String fileOut) throws Exception{
               String[] comand = new String[]{"ffmpeg", "-i", fileIn, "-acodec", "pcm_s16le", fileOut};

               Process process = null;
               try {
                   ProcessBuilder pb = new ProcessBuilder(comand);
                   pb.redirectErrorStream(true);
                   process = pb.start();

                   //Reading from error and standard output console buffer of process. Or it could halts because of nobody
                   //reads its buffer
                   BufferedReader reader =
                           new BufferedReader(new InputStreamReader(process.getInputStream()));
                   String line;
                   //noinspection StatementWithEmptyBody
                   while ((line = reader.readLine()) != null) {
                       System.out.println(line);
                       //Ignored as we just need to empty the output buffer from process
                   }

                   process.waitFor();
               } catch (IOException | InterruptedException e) {
                   throw e;
               } finally {
                   if (process != null)
                       process.destroy();
               }
           }

       }

    }

    UPD3 :
    Sorry, I forgot to notice that I see the work of all these process - they created new converted files but anyway don’t exit.

  • Alfresco Content transformation from .avi to *.flv using ffmpeg

    25 octobre 2011, par Masanchez

    I'm trying to transform diferents video formats into .flv in Alfresco
    I'm using 'ffmpeg' tool to transform content.
    My code :
    avi2flv-transform-context.xml

    <?xml version='1.0' encoding='UTF-8'?>

    <beans>
       <bean class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
           <property>
               <ref bean="mimetypeService"></ref>
           </property>
           <property>
               <bean class="org.alfresco.util.exec.RuntimeExec">
                   <property>
                       <map>
                           <entry key=".*">
                               <list>
                                   <value>ffmpeg</value>
                                   <value>-version</value>
                               </list>
                           </entry>
                       </map>
                   </property>
                   <property>
                       <value>1</value>
                   </property>
               </bean>
           </property>
           <property>
               <bean class="org.alfresco.util.exec.RuntimeExec">
                   <property>
                       <map>
                           <entry key="Linux">
                               <value>ffmpeg -i &#39;${target}&#39; ${flv.encoder.params} &#39;${source}&#39;</value>
                           </entry>
                       </map>
                   </property>
                   <property>
                       <value>1,2</value>
                   </property>
                   <property>
                       <value>true</value>
                   </property>
                   <property>
                       <props>
                           <prop key="flv.encoder.params">-vcodec flv</prop>
                       </props>
                   </property>
               </bean>
           </property>
           <property>
               <list>
    <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/avi</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/x-msvideo</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/mpeg</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/mp4</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/mpeg2</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/x-sgi-movie</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/quicktime</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/x-ms-asf</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/x-ms-wmv</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/x-rad-screenplay</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
                   <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                       <property>
                           <value>video/ogg</value>
                       </property>
                       <property>
                           <value>video/x-flv</value>
                       </property>
                   </bean>
               </list>
           </property>
       </bean>
       <bean class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
           <property>
               <ref bean="transformer.ffmpeg.avi.worker"></ref>
           </property>
       </bean>
    </beans>

    webservice :

    if(getFile(folderVIDEO, field.filename) == null)
    {
                               if(file_test_node=folderVIDEO.createFile(nombrefichero+field.filename)){
                                   model.mensajes.push(&#39;Se ha creado el fichero &#39;+nombrefichero+field.filename);
                               }else
                                   model.mensajes.push(&#39;Ha ocurrido un error cuando se intentaba crear el fichero &#39;+nombrefichero+field.filename);
                               file_test_node.properties.content.write(field.content);
                               folderVIDEO = getFolder(search.findNode("workspace://SpacesStore/"+fondoid),nameFolderVIDEO);
                               var action = actions.create("transform");
                               // Store the transformed version in the same folder as the source
                               action.parameters["destination-folder"] = file_test_node.parent;
                               action.parameters["assoc-type"] = "{http://www.alfresco.org/model/content/1.0}contains";
                               action.parameters["assoc-name"] = file_test_node.name + "transformed";
                               action.parameters["mime-type"] = "video/x-flv";
                               // Execute
                               action.execute(file_test_node);
                           }

    The error

    The Web Script /alfresco/s/gcd/fondo has responded with a status of 500 - Internal Error.

    500 Description:     An error inside the HTTP server which prevented it from fulfilling the request.

    Message:    09180016 Wrapped Exception (with status template): 09180029 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/creado.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09180028 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/18/20/56/65b3457f-c37c-4404-b4b7-9abac30f018d.bin, mimetype=video/x-msvideo, size=1614694, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/18/20/56/e92d00e2-7bd8-4bdd-8d50-b61fe4bac903.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@745ce55


    Exception:  org.alfresco.service.cmr.repository.ContentIOException - 09180027 Transformation failed - status indicates an error: Execution result: os: Linux command: [ffmpeg, -i, &#39;/home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_target_3008293789769608319.flv&#39;, -vcodec flv, &#39;/home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_source_5021918644492976031.avi&#39;] succeeded: false exit code: 1 out: err: FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.2, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.1-1ubuntu1.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --e



    org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker.transform(RuntimeExecutableContentTransformerWorker.java:272)

    org.alfresco.repo.content.transform.ProxyContentTransformer.transformInternal(ProxyContentTransformer.java:68)

    org.alfresco.repo.content.transform.AbstractContentTransformer2.transform(AbstractContentTransformer2.java:161)

    org.alfresco.repo.content.ContentServiceImpl.transform(ContentServiceImpl.java:555)

    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    java.lang.reflect.Method.invoke(Method.java:597)

    org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

    org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

    net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.alfresco.repo.model.ml.MLContentInterceptor.invoke(MLContentInterceptor.java:125)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:44)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.alfresco.repo.audit.AuditMethodInterceptor.proceed(AuditMethodInterceptor.java:160)

    org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:137)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

    $Proxy42.transform(Unknown Source)

    org.alfresco.repo.action.executer.TransformActionExecuter.doTransform(TransformActionExecuter.java:305)

    org.alfresco.repo.action.executer.TransformActionExecuter.executeImpl(TransformActionExecuter.java:270)

    org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:133)

    org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:749)

    org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:675)

    org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:540)

    org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:526)

    org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:758)

    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    java.lang.reflect.Method.invoke(Method.java:597)

    org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

    org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

    org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:44)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.alfresco.repo.audit.AuditMethodInterceptor.proceedWithAudit(AuditMethodInterceptor.java:217)

    org.alfresco.repo.audit.AuditMethodInterceptor.proceed(AuditMethodInterceptor.java:184)

    org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:137)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)

    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

    org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

    $Proxy34.executeAction(Unknown Source)

    org.alfresco.repo.jscript.ScriptAction.executeImpl(ScriptAction.java:147)

    org.alfresco.repo.jscript.ScriptAction.execute(ScriptAction.java:136)

    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    java.lang.reflect.Method.invoke(Method.java:597)

    org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)

    org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:243)

    org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)

    org.mozilla.javascript.gen.c59._c9(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js:459)

    org.mozilla.javascript.gen.c59.call(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js)

    org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)

    org.mozilla.javascript.gen.c59._c0(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js:271)

    org.mozilla.javascript.gen.c59.call(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js)

    org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:393)

    org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2834)

    org.mozilla.javascript.gen.c59.call(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js)

    org.mozilla.javascript.gen.c59.exec(workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions/com/inventiaplus/gcd/fondo/creado.post.js)

    org.alfresco.repo.jscript.RhinoScriptProcessor.executeScriptImpl(RhinoScriptProcessor.java:472)

    org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:190)

    org.alfresco.repo.processor.ScriptServiceImpl.executeScript(ScriptServiceImpl.java:282)

    org.alfresco.repo.web.scripts.RepositoryScriptProcessor.executeScript(RepositoryScriptProcessor.java:102)

    org.springframework.extensions.webscripts.AbstractWebScript.executeScript(AbstractWebScript.java:981)

    org.springframework.extensions.webscripts.DeclarativeWebScript.execute(DeclarativeWebScript.java:86)

    org.alfresco.repo.web.scripts.RepositoryContainer$2.execute(RepositoryContainer.java:383)

    org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:381)

    org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecute(RepositoryContainer.java:436)

    org.alfresco.repo.web.scripts.RepositoryContainer.transactionedExecuteAs(RepositoryContainer.java:466)

    org.alfresco.repo.web.scripts.RepositoryContainer.executeScript(RepositoryContainer.java:304)

    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:333)

    org.springframework.extensions.webscripts.AbstractRuntime.executeScript(AbstractRuntime.java:189)

    org.springframework.extensions.webscripts.servlet.WebScriptServlet.service(WebScriptServlet.java:118)

    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

    org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)

    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

    java.lang.Thread.run(Thread.java:619)


    Exception:  org.alfresco.service.cmr.repository.ContentIOException - 09180028 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/18/20/56/65b3457f-c37c-4404-b4b7-9abac30f018d.bin, mimetype=video/x-msvideo, size=1614694, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/18/20/56/e92d00e2-7bd8-4bdd-8d50-b61fe4bac903.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@745ce55



    org.alfresco.repo.content.transform.AbstractContentTransformer2.transform(AbstractContentTransformer2.java:177)


    Exception:  org.alfresco.scripts.ScriptException - 09180029 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/creado.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09180028 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/18/20/56/65b3457f-c37c-4404-b4b7-9abac30f018d.bin, mimetype=video/x-msvideo, size=1614694, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/18/20/56/e92d00e2-7bd8-4bdd-8d50-b61fe4bac903.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@745ce55



    org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:194)


    Exception:  org.springframework.extensions.webscripts.WebScriptException - 09180016 Wrapped Exception (with status template): 09180029 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/creado.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09180028 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/18/20/56/65b3457f-c37c-4404-b4b7-9abac30f018d.bin, mimetype=video/x-msvideo, size=1614694, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/18/20/56/e92d00e2-7bd8-4bdd-8d50-b61fe4bac903.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@745ce55



    org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:758)


    Server: Community v3.4.0 (c 3335) schema 4,113
    Time:   Oct 18, 2011 8:56:51 PM


    Diagnostics:    Inspect Web Script (com/inventiaplus/gcd/fondo/creado.post)

    I don't know where is the problem
    Somebody can help me ?

    I did some changes...

    avi2flv-transform-context.xml :

    <entry key="Linux">
           <value>ffmpeg -y -i &#39;${target}&#39; ${flv.encoder.params} &#39;${source}&#39;</value>
    </entry>

    Source <-> Target

    <props>
       <prop key="flv.encoder.params">-threads 2 -s 320x240 -r 29.97 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -ar 44100 -ac 2 -ab 128k</prop>
    </props>

    change parameters

    error :

    The Web Script /alfresco/s/gcd/fondo/9fe0bf90-1875-4f51-9f75-7c35f6d0802c has responded with a status of 500 - Internal Error.

    500 Description:    An error inside the HTTP server which prevented it from fulfilling the request.

    Message:    09250001 Wrapped Exception (with status template): 09250004 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/guardar.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09250003 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/25/8/27/efff7050-3a67-492d-9e5b-507c03bd0a80.bin, mimetype=video/x-msvideo, size=256362496, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/25/8/28/cb81b7f2-3c72-4266-afd7-0d1a3fb9f420.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@18c4074f

    Exception:  org.alfresco.service.cmr.repository.ContentIOException - 09250002 Transformation failed - status indicates an error: Execution result: os: Linux command: [ffmpeg, -y, -i, &#39;/home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_target_4598080275234396407.flv&#39;, -threads 2 -s 320x240 -r 29.97 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -ar 44100 -ac 2 -ab 128k, &#39;/home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_source_6538382831295915428.avi&#39;] succeeded: false exit code: 1 out: err: FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1.2, Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-version=4:0.5.1-1ubuntu1.2 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --e

       ...

    Exception:  org.alfresco.service.cmr.repository.ContentIOException - 09250003 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/25/8/27/efff7050-3a67-492d-9e5b-507c03bd0a80.bin, mimetype=video/x-msvideo, size=256362496, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/25/8/28/cb81b7f2-3c72-4266-afd7-0d1a3fb9f420.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@18c4074f

       org.alfresco.repo.content.transform.AbstractContentTransformer2.transform(AbstractContentTransformer2.java:177)

    Exception:  org.alfresco.scripts.ScriptException - 09250004 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/guardar.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09250003 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/25/8/27/efff7050-3a67-492d-9e5b-507c03bd0a80.bin, mimetype=video/x-msvideo, size=256362496, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/25/8/28/cb81b7f2-3c72-4266-afd7-0d1a3fb9f420.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@18c4074f

       org.alfresco.repo.jscript.RhinoScriptProcessor.execute(RhinoScriptProcessor.java:194)

    Exception:  org.springframework.extensions.webscripts.WebScriptException - 09250001 Wrapped Exception (with status template): 09250004 Failed to execute script &#39;/com/inventiaplus/gcd/fondo/guardar.post.js (in repository store workspace://SpacesStore/Company Home/Data Dictionary/Web Scripts Extensions)&#39;: 09250003 Content conversion failed: reader: ContentAccessor[ contentUrl=store://2011/10/25/8/27/efff7050-3a67-492d-9e5b-507c03bd0a80.bin, mimetype=video/x-msvideo, size=256362496, encoding=null, locale=es_ES] writer: ContentAccessor[ contentUrl=store://2011/10/25/8/28/cb81b7f2-3c72-4266-afd7-0d1a3fb9f420.bin, mimetype=video/x-flv, size=0, encoding=null, locale=es_ES] options: org.alfresco.service.cmr.repository.TransformationOptions@18c4074f

       org.springframework.extensions.webscripts.AbstractWebScript.createStatusException(AbstractWebScript.java:758)

    Server: Community v3.4.0 (c 3335) schema 4,113
    Time:   Oct 25, 2011 8:28:29 AM

    I use command line

    ffmpeg -y -i /home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_source_6538382831295915428.avi -threads 2 -s 320x240 -r 29.97 -threads 1 -pix_fmt yuv420p -g 300 -qmin 3 -b 512k -async 50 -ar 44100 -ac 2 -ab 128k /home/inventiaplus/alfresco/tomcat/temp/Alfresco/RuntimeExecutableContentTransformerWorker_target_4598080275234396407.flv

    and It works

  • Problems transcoding GoToMeeting output using FFmpeg

    20 avril 2014, par user3466413

    I’m having a nightmare of a time transcoding output from GoToMeeting, recorded using the latest OS X version, to something web-playable. No matter what settings I use, I end up with time syncing problems, at least with this particular recording.

    The .mov file looks like this. Note that it’s variable framerate, and because it’s mostly just a screencast of a PowerPoint presentation with occasional mouse movement, the output should be VFR too to produce a small file yet still preserve occasional motion.

    $ ffmpeg -i original.mov
    ffmpeg version N-58273-g18df75f Copyright (c) 2000-2013 the FFmpeg developers
     built on Nov 19 2013 10:34:42 with Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
     configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --prefix=/usr/local
     libavutil      52. 53.100 / 52. 53.100
     libavcodec     55. 43.101 / 55. 43.101
     libavformat    55. 21.100 / 55. 21.100
     libavdevice    55.  5.100 / 55.  5.100
     libavfilter     3. 91.100 /  3. 91.100
     libswscale      2.  5.101 /  2.  5.101
     libswresample   0. 17.104 /  0. 17.104
     libpostproc    52.  3.100 / 52.  3.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f822980a000] decoding for stream 0 failed
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'original.mov':
     Metadata:
       major_brand     : qt
       minor_version   : 537199360
       compatible_brands: qt
       creation_time   : 2014-03-20 02:09:22
     Duration: 03:08:26.72, start: 0.000000, bitrate: 75 kb/s
       Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv), 1368x728 [SAR 1:1 DAR 171:91], 20 kb/s, 0.60 fps, 600 tbr, 600 tbn, 1200 tbc (default)
       Metadata:
         creation_time   : 2014-03-20 02:09:22
         handler_name    : Apple Alias Data Handler
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 16000 Hz, mono, fltp, 47 kb/s (default)
       Metadata:
         creation_time   : 2014-03-20 02:09:22
         handler_name    : Apple Alias Data Handler
       Stream #0:2(eng): Data: none (rtp  / 0x20707472), 6 kb/s
       Metadata:
         creation_time   : 2014-03-20 02:09:22
         handler_name    : Apple Alias Data Handler
       Stream #0:3(und): Data: none (rtp  / 0x20707472), 0 kb/s
       Metadata:
         creation_time   : 2014-03-20 02:09:22
         handler_name    : Apple Alias Data Handler

    The .mov file (which I unfortunately cannot publicly post) plays back properly in any application I use : VLC, Media Player Classic, and QuickTime. However, playing the transcoded output always exhibits the following symptoms :

    • Audio out of sync with what the video is showing, sometimes to the order of minutes off towards the end of this three hour recording
    • In the case of Media Player Classic, clicking a spot on the timeline actually moves the playhead to a spot on the timeline near where I clicked, but not directly on it.

    There are the arguments I’m using for a .mp4 encoding that is playable in all browsers that support H.264. Note that this is on Windows but Linux exhibits the same problems.

    ffmpeg.exe -y -i original.mov -i watermark.png -filter_complex "[0:v] crop=1184:720:178:6,scale=1184:720,setsar=1/1; [0:v][1:v] overlay=1242:648 [0:v]" -vcodec libx264 -acodec libvo_aacenc -q:a 80 -crf 30 -ac 1 -ar 16000 -strict -2 -profile:v baseline -level 3 outout.mkv

    The arguments, other than those that are self-explanatory or trivial :

    • -filter_complex : Crop excess letterboxing/pillarboxing from the video and set the aspect ratio to 1:1 for square pixels (something Safari needed), then overlay a watermark from a PNG and resize the output to 720p
    • -crf 30 : encode the video at constant quality, variable bitrate
    • -ac 1 -ar 16000 : encode with mono audio at 16 KHz
    • -strict -2 -profile:v baseline -level 3 : encode using FFmpeg’s "experimental" H.264 encoder using the Baseline level 3 profile for web compatibility

    Note that yes, this goes to an MKV container initially because, for some reason, encoding directly to a .mp4 container hangs FFmpeg. I then use -acodec copy -vcodec copy to copy the audio and video streams directly into a .mp4 container. Finally I pass the output through MP4Box to interleave it so it can be progressively downloaded.

    When transcoding, FFmpeg does drop frames, which I suspect is related to the problem, with output like this :

    FFmpeg: frame=  232 fps= 26 q=24.0 size=    5983kB time=00:32:44.57 bitrate=  24.9kbits/s dup=0 drop=1487

    When I then later attempt to mux it into the .mp4 container from this temporary .mkv container, I get a flood of warnings like this :

    [mp4 @ 0297cd00] Non-monotonous DTS in output stream 0:0; previous: 6341306, current: 6007024; changing to 6341307. This may result in incorrect timestamps in the output file.

    Now I wouldn’t be surprised if there is indeed some problem with the source file. However, if so, I need to definitively prove just how it’s broken.

    Any thoughts ?