Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (80)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Le plugin : Gestion de la mutualisation

    2 mars 2010, par

    Le plugin de Gestion de mutualisation permet de gérer les différents canaux de mediaspip depuis un site maître. Il a pour but de fournir une solution pure SPIP afin de remplacer cette ancienne solution.
    Installation basique
    On installe les fichiers de SPIP sur le serveur.
    On ajoute ensuite le plugin "mutualisation" à la racine du site comme décrit ici.
    On customise le fichier mes_options.php central comme on le souhaite. Voilà pour l’exemple celui de la plateforme mediaspip.net :
    < ?php (...)

Sur d’autres sites (4273)

  • Reason for write EPIPE error in my implementation ?

    25 mai 2019, par Chrisl446

    I currently have a small node.js express application for uploading images using sharp & thumbnails created from .mp4 videos using simple-thumbnail package/ffmpeg.

    The app works perfectly when uploading an image, the file is uploaded sharp processes it, then passes it along and it ends up in my amazon s3 bucket as expected. No errors what so ever.

    However, when I upload an mp4 video that I use to create and upload a thumbnail from by using simple-thumbnails genThumbnail() function, which uses ffmpeg child process, the thumbnail uploads successully to my s3 bucket, HOWEVER my app returns an EPIPE write error and NOT the url of the uploaded files url on S3.

    What is causing this and how can I fix it, considering it’s pretty much working aside from the EPIPE error that is being returned ? Thanks ahead !

    The packages of concern used are as follows :

    aws-sdk

    multer

    multer-s3 <- this one with the transform option, not the standard multer-s3 package

    simple-thumbnail

    const express = require('express');
    const app = express();

    const aws = require('aws-sdk');
    const multer = require('multer');
    const multerS3 = require('multer-s3'); //github:gmenih341/multer-s3 version of multer-s3 with transform option
    const sharp = require('sharp');
    const genThumbnail = require('simple-thumbnail');

    app.use((req, res, next) => {
       res.header('Access-Control-Allow-Origin', '*');
       res.header('Access-Control-Allow-Headers', 'Orgin, X-Requested-With, Content-Type, Accept, Authorization');
       if (req.method === 'OPTIONS') {
           res.header('Access-Control-Allow-Methods', 'POST');
           return res.status(200).json({});
       }
       next();
    });

    let uniqueFileName;
    let s3BucketName = 'bucketname';

    let s3 = new aws.S3({
       accessKeyId: ACCESS_KEY,
       secretAccessKey: SECRET_KEY,
       Bucket: s3BucketName
    });

    let upload = multer({
       storage: multerS3({
           s3: s3,
           bucket: s3BucketName,
           acl: 'public-read',
           cacheControl: 'max-age=31536000',
           contentType: multerS3.AUTO_CONTENT_TYPE,
           shouldTransform: true,
           transforms: [{
               id: 'thumbnail',
               key: function (req, file, cb) {
                   uniqueFileName = Date.now().toString();
                   cb(null, uniqueFileName + '.jpg')
               },
               transform: function (req, file, cb) {
                   if (file.mimetype == 'video/mp4') {
                       //When using simple-thumbnails' getThumbnail() on an mp4 video it uploads succesfully to S3 but node returns EPIPE write error
                       cb(null, genThumbnail(null, null, '250x?'))
                   } else {
                       //When using sharp to resize an image this works perfectly and retuns the JSON below with the files S3 URL
                       cb(null, sharp().jpeg())
                   }

               }
           }]
       })
    });

    app.post('/upload', upload.array('theFile'), (req, res) => {
       res.json({
           fileS3Url: 'https://s3.amazonaws.com/'+ s3BucketName +'/' + uniqueFileName
       });
    });

    app.use((req, res, next) => {
       const error = new Error('Not found');
       error.status = 404;
       next(error);
    });

    app.use((error, req, res, next) => {
       res.status(error.status || 500);
       res.json({
           error: {
               message: error.message
           }
       });
    });

    module.exports = app;
  • Java.lang.NoClassDefFoundError caused by FFmpeg when deployed on Linux as a packaged .war (Works on development machine)

    27 décembre 2016, par Jake Miller

    I use an FFmpeg wrapper to create thumbnails for videos uploaded by users. This works perfectly fine when testing on my development machine. However, whenever I package my project as a .war and deploy to Amazon Web Services, I get the following stack trace :

    Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
       at java.lang.Class.forName0(Native Method) ~[na:1.8.0_101]
       at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_101]
       at org.bytedeco.javacpp.Loader.load(Loader.java:472) ~[javacpp-1.2.1.jar!/:1.2.1]
       at org.bytedeco.javacpp.Loader.load(Loader.java:417) ~[javacpp-1.2.1.jar!/:1.2.1]
       at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2597) ~[ffmpeg-2.8.1-1.1.jar!/:1.2.1]
       at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) ~[javacv-1.2.jar!/:1.2]
       at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) ~[javacv-1.2.jar!/:1.2]
       at com.myapp.app.service.ICampaignService.createThumbnail(ICampaignService.java:425) ~[classes!/:0.0.44T-SNAPSHOT]
       at com.myapp.app.service.ICampaignService$$FastClassBySpringCGLIB$$47736265.invoke(<generated>) ~[classes!/:0.0.44T-SNAPSHOT]
       at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) ~[spring-aop-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at com.myapp.app.service.ICampaignService$$EnhancerBySpringCGLIB$$67e59894.createThumbnail(<generated>) ~[classes!/:0.0.44T-SNAPSHOT]
       at com.myapp.app.controllers.CampaignController.uploadCampaign(CampaignController.java:237) ~[classes!/:0.0.44T-SNAPSHOT]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_101]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_101]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_101]
       at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_101]
       at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.2.RELEASE.jar!/:4.3.2.RELEASE]
       ... 85 common frames omitted
    </generated></generated></clinit>

    Here’s my maven dependencies for the FFmpeg wrapper :

    <dependency>
       <groupid>org.bytedeco</groupid>
       <artifactid>javacv</artifactid>
       <version>1.3</version>
    </dependency>
    <dependency>
       <groupid>org.bytedeco</groupid>
       <artifactid>javacpp</artifactid>
       <version>1.3</version>
    </dependency>
    <dependency>
       <groupid>org.bytedeco.javacpp-presets</groupid>
       <artifactid>ffmpeg</artifactid>
       <version>3.2.1-1.3</version>
    </dependency>
    <dependency>
       <groupid>org.bytedeco.javacpp-presets</groupid>
       <artifactid>opencv-platform</artifactid>
       <version>3.1.0-1.3</version>
    </dependency>

    Again, this library works perfectly fine on my development machine.

    • Development machine : Windows 10, 64-bit (Works)

    • AWS instance:64bit Amazon Linux 2016.09 v2.2.0 running Java 8 (Causes the issue above)

    I’ve spent around 7 hours trying to fix the issue by messing around with versions. Any idea how to solve this issue ?

    EDIT

    Dependency Tree :

    [INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.4.0.RELEASE:compile
    [INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.1.7:compile
    [INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.1.7:compile
    [INFO] |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.21:compile
    [INFO] |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.21:compile
    [INFO] |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
    [INFO] |  +- org.springframework.boot:spring-boot-starter-aop:jar:1.4.0.RELEASE:compile
    [INFO] |  |  \- org.aspectj:aspectjweaver:jar:1.8.9:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.apache.tomcat:tomcat-jdbc:jar:8.5.4:compile
    [INFO] |  |  |  \- org.apache.tomcat:tomcat-juli:jar:8.5.4:compile
    [INFO] |  |  \- org.springframework:spring-jdbc:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.hibernate:hibernate-core:jar:5.0.9.Final:compile
    [INFO] |  |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
    [INFO] |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
    [INFO] |  |  +- org.javassist:javassist:jar:3.20.0-GA:compile
    [INFO] |  |  +- antlr:antlr:jar:2.7.7:compile
    [INFO] |  |  +- org.jboss:jandex:jar:2.0.0.Final:compile
    [INFO] |  |  +- dom4j:dom4j:jar:1.6.1:compile
    [INFO] |  |  |  \- xml-apis:xml-apis:jar:1.4.01:compile
    [INFO] |  |  \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
    [INFO] |  +- org.hibernate:hibernate-entitymanager:jar:5.0.9.Final:compile
    [INFO] |  +- javax.transaction:javax.transaction-api:jar:1.2:compile
    [INFO] |  +- org.springframework.data:spring-data-jpa:jar:1.10.2.RELEASE:compile
    [INFO] |  |  +- org.springframework.data:spring-data-commons:jar:1.12.2.RELEASE:compile
    [INFO] |  |  +- org.springframework:spring-orm:jar:4.3.2.RELEASE:compile
    [INFO] |  |  +- org.springframework:spring-tx:jar:4.3.2.RELEASE:compile
    [INFO] |  |  \- org.slf4j:jcl-over-slf4j:jar:1.7.21:compile
    [INFO] |  \- org.springframework:spring-aspects:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-security:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework:spring-aop:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework.security:spring-security-config:jar:4.1.1.RELEASE:compile
    [INFO] |  \- org.springframework.security:spring-security-web:jar:4.1.1.RELEASE:compile
    [INFO] |     \- org.springframework:spring-expression:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.4.0.RELEASE:compile
    [INFO] |  +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.4.0.RELEASE:compile
    [INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.4:compile
    [INFO] |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.4:compile
    [INFO] |  |  \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.4:compile
    [INFO] |  +- org.hibernate:hibernate-validator:jar:5.2.4.Final:compile
    [INFO] |  |  +- javax.validation:validation-api:jar:1.1.0.Final:compile
    [INFO] |  |  \- com.fasterxml:classmate:jar:1.3.1:compile
    [INFO] |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.1:compile
    [INFO] |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.1:compile
    [INFO] |  |  \- com.fasterxml.jackson.core:jackson-core:jar:2.8.1:compile
    [INFO] |  +- org.springframework:spring-web:jar:4.3.2.RELEASE:compile
    [INFO] |  \- org.springframework:spring-webmvc:jar:4.3.2.RELEASE:compile
    [INFO] +- org.springframework.boot:spring-boot-starter-test:jar:1.4.0.RELEASE:test
    [INFO] |  +- org.springframework.boot:spring-boot-test:jar:1.4.0.RELEASE:test
    [INFO] |  +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.4.0.RELEASE:test
    [INFO] |  +- com.jayway.jsonpath:json-path:jar:2.2.0:test
    [INFO] |  |  \- net.minidev:json-smart:jar:2.2.1:test
    [INFO] |  |     \- net.minidev:accessors-smart:jar:1.1:test
    [INFO] |  |        \- org.ow2.asm:asm:jar:5.0.3:test
    [INFO] |  +- junit:junit:jar:4.12:test
    [INFO] |  +- org.assertj:assertj-core:jar:2.5.0:test
    [INFO] |  +- org.mockito:mockito-core:jar:1.10.19:test
    [INFO] |  |  \- org.objenesis:objenesis:jar:2.1:test
    [INFO] |  +- org.hamcrest:hamcrest-core:jar:1.3:test
    [INFO] |  +- org.hamcrest:hamcrest-library:jar:1.3:test
    [INFO] |  +- org.skyscreamer:jsonassert:jar:1.3.0:test
    [INFO] |  |  \- org.json:json:jar:20140107:test
    [INFO] |  +- org.springframework:spring-core:jar:4.3.2.RELEASE:compile
    [INFO] |  \- org.springframework:spring-test:jar:4.3.2.RELEASE:test
    [INFO] +- org.springframework.security.oauth:spring-security-oauth2:jar:2.0.10.RELEASE:compile
    [INFO] |  +- org.springframework:spring-beans:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework:spring-context:jar:4.3.2.RELEASE:compile
    [INFO] |  +- org.springframework.security:spring-security-core:jar:4.1.1.RELEASE:compile
    [INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
    [INFO] |  +- commons-codec:commons-codec:jar:1.10:compile
    [INFO] |  \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
    [INFO] |     \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
    [INFO] +- org.springframework.security:spring-security-jwt:jar:1.0.4.RELEASE:compile
    [INFO] |  \- org.bouncycastle:bcpkix-jdk15on:jar:1.47:compile
    [INFO] |     \- org.bouncycastle:bcprov-jdk15on:jar:1.47:compile
    [INFO] +- mysql:mysql-connector-java:jar:5.1.39:compile
    [INFO] +- commons-io:commons-io:jar:2.5:compile
    [INFO] +- org.apache.commons:commons-lang3:jar:3.0:compile
    [INFO] +- org.bytedeco:javacv:jar:1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:flycapture:jar:2.9.3.43-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:libdc1394:jar:2.2.4-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:libfreenect:jar:0.5.3-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:librealsense:jar:1.9.6-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:videoinput:jar:0.200-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:artoolkitplus:jar:2.3.1-1.3:compile
    [INFO] |  \- org.bytedeco.javacpp-presets:flandmark:jar:1.07-1.3:compile
    [INFO] +- org.bytedeco:javacpp:jar:1.3:compile
    [INFO] +- org.bytedeco.javacpp-presets:ffmpeg:jar:3.2.1-1.3:compile
    [INFO] +- org.bytedeco.javacpp-presets:opencv-platform:jar:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:android-arm:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:android-x86:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-x86:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-x86_64:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-armhf:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:linux-ppc64le:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:macosx-x86_64:3.1.0-1.3:compile
    [INFO] |  +- org.bytedeco.javacpp-presets:opencv:jar:windows-x86:3.1.0-1.3:compile
    [INFO] |  \- org.bytedeco.javacpp-presets:opencv:jar:windows-x86_64:3.1.0-1.3:compile
    [INFO] +- com.paypal.sdk:rest-api-sdk:jar:1.13.0:compile
    [INFO] |  +- org.slf4j:slf4j-api:jar:1.7.21:compile
    [INFO] |  \- com.google.code.gson:gson:jar:2.7:compile
    [INFO] +- com.squareup.okhttp3:okhttp:jar:3.4.1:compile
    [INFO] |  \- com.squareup.okio:okio:jar:1.9.0:compile
    [INFO] +- javax.mail:mail:jar:1.4:compile
    [INFO] |  \- javax.activation:activation:jar:1.1:compile
    [INFO] \- com.amazonaws:aws-java-sdk:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-support:jar:1.11.58:compile
    [INFO]    |  \- com.amazonaws:jmespath-java:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-simpledb:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-servicecatalog:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-servermigration:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-simpleworkflow:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-storagegateway:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-route53:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-s3:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-importexport:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sts:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sqs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-rds:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-redshift:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticbeanstalk:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-glacier:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-iam:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-datapipeline:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticloadbalancing:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticloadbalancingv2:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-emr:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticache:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elastictranscoder:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ec2:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-dynamodb:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-sns:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-budgets:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudtrail:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudwatch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-logs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-events:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitoidentity:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitosync:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-directconnect:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudformation:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudfront:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-kinesis:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-opsworks:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ses:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-autoscaling:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudsearch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudwatchmetrics:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codedeploy:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codepipeline:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-kms:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-config:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-lambda:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ecs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ecr:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cloudhsm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-ssm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-workspaces:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-machinelearning:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-directory:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-efs:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-codecommit:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-devicefarm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-elasticsearch:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-waf:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-marketplacecommerceanalytics:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-inspector:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-iot:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-api-gateway:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-acm:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-gamelift:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-dms:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-marketplacemeteringservice:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-cognitoidp:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-discovery:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-applicationautoscaling:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-snowball:jar:1.11.58:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-core:jar:1.11.58:compile
    [INFO]    |  +- commons-logging:commons-logging:jar:1.1.3:compile
    [INFO]    |  +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
    [INFO]    |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.5:compile
    [INFO]    |  +- software.amazon.ion:ion-java:jar:1.0.1:compile
    [INFO]    |  +- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.8.1:compile
    [INFO]    |  \- joda-time:joda-time:jar:2.9.4:compile
    [INFO]    +- com.amazonaws:aws-java-sdk-models:jar:1.11.58:compile
    [INFO]    \- com.amazonaws:aws-java-sdk-swf-libraries:jar:1.11.22:compile

    Error after upgrading Linux to 2.4, downgrading javacpp to 1.2.1, and running mvn clean :

    java.lang.NoClassDefFoundError: Could not initialize class org.bytedeco.javacpp.avutil
       at java.lang.Class.forName0(Native Method) ~[na:1.8.0_111]
       at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_111]
       at org.bytedeco.javacpp.Loader.load(Loader.java:472) ~[javacpp-1.2.1.jar!/:1.2.1]
       at org.bytedeco.javacpp.Loader.load(Loader.java:417) ~[javacpp-1.2.1.jar!/:1.2.1]
       at org.bytedeco.javacpp.avformat$AVFormatContext.<clinit>(avformat.java:2819) ~[ffmpeg-3.2.1-1.3.jar!/:1.2.1]
       at org.bytedeco.javacv.FFmpegFrameGrabber.startUnsafe(FFmpegFrameGrabber.java:391) ~[javacv-1.3.jar!/:1.3]
       at org.bytedeco.javacv.FFmpegFrameGrabber.start(FFmpegFrameGrabber.java:385) ~[javacv-1.3.jar!/:1.3]
    </clinit>

    WHAT I’VE TRIED SO FAR

    • upgrade to Linux to 2.4
    • downgrading javacpp to 1.2.1
    • running mvn clean
    • running mvn -U
    • deleting contents of /.m2/ and redownloading dependencies
    • various combinations of dependency versions
    • git clone on a Linux VM & running mvn install there
  • Live audio using ffmpeg, javascript and nodejs

    8 novembre 2017, par klaus

    I am new to this thing. Please don’t hang me for the poor grammar. I am trying to create a proof of concept application which I will later extend. It does the following : We have a html page which asks for permission to use the microphone. We capture the microphone input and send it via websocket to a node js app.

    JS (Client) :

    var bufferSize = 4096;
    var socket = new WebSocket(URL);
    var myPCMProcessingNode = context.createScriptProcessor(bufferSize, 1, 1);
    myPCMProcessingNode.onaudioprocess = function(e) {
     var input = e.inputBuffer.getChannelData(0);
     socket.send(convertFloat32ToInt16(input));
    }

    function convertFloat32ToInt16(buffer) {
     l = buffer.length;
     buf = new Int16Array(l);
     while (l--) {
       buf[l] = Math.min(1, buffer[l])*0x7FFF;
     }
     return buf.buffer;
    }

    navigator.mediaDevices.getUserMedia({audio:true, video:false})
                                   .then(function(stream){
                                     var microphone = context.createMediaStreamSource(stream);
                                     microphone.connect(myPCMProcessingNode);
                                     myPCMProcessingNode.connect(context.destination);
                                   })
                                   .catch(function(e){});

    In the server we take each incoming buffer, run it through ffmpeg, and send what comes out of the std out to another device using the node js ’http’ POST. The device has a speaker. We are basically trying to create a 1 way audio link from the browser to the device.

    Node JS (Server) :

    var WebSocketServer = require('websocket').server;
    var http = require('http');
    var children = require('child_process');

    wsServer.on('request', function(request) {
     var connection = request.accept(null, request.origin);
     connection.on('message', function(message) {
       if (message.type === 'utf8') { /*NOP*/ }
       else if (message.type === 'binary') {
         ffm.stdin.write(message.binaryData);
       }
     });
     connection.on('close', function(reasonCode, description) {});
     connection.on('error', function(error) {});
    });

    var ffm = children.spawn(
       './ffmpeg.exe'
      ,'-stdin -f s16le -ar 48k -ac 2 -i pipe:0 -acodec pcm_u8 -ar 48000 -f aiff pipe:1'.split(' ')
    );

    ffm.on('exit',function(code,signal){});

    ffm.stdout.on('data', (data) => {
     req.write(data);
    });

    var options = {
     host: 'xxx.xxx.xxx.xxx',
     port: xxxx,
     path: '/path/to/service/on/device',
     method: 'POST',
     headers: {
      'Content-Type': 'application/octet-stream',
      'Content-Length': 0,
      'Authorization' : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
      'Transfer-Encoding' : 'chunked',
      'Connection': 'keep-alive'
     }
    };

    var req = http.request(options, function(res) {});

    The device supports only continuous POST and only a couple of formats (ulaw, aiff, wav)

    This solution doesn’t seem to work. In the device speaker we only hear something like white noise.

    Also, I think I may have a problem with the buffer I am sending to the ffmpeg std in -> Tried to dump whatever comes out of the websocket to a .wav file then play it with VLC -> it plays everything in the record very fast -> 10 seconds of recording played in about 1 second.

    I am new to audio processing and have searched for about 3 days now for solutions on how to improve this and found nothing.

    I would ask from the community for 2 things :

    1. Is something wrong with my approach ? What more can I do to make this work ? I will post more details if required.

    2. If what I am doing is reinventing the wheel then I would like to know what other software / 3rd party service (like amazon or whatever) can accomplish the same thing.

    Thank you.