
Recherche avancée
Autres articles (31)
-
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs
Sur d’autres sites (5660)
-
Live audio using ffmpeg, javascript and nodejs
8 novembre 2017, par klausI 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 :
-
Is something wrong with my approach ? What more can I do to make this work ? I will post more details if required.
-
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.
-
-
Java.lang.NoClassDefFoundError caused by FFmpeg when deployed on Linux as a packaged .war (Works on development machine)
27 décembre 2016, par Jake MillerI 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:compileError 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 & runningmvn install
there
-
-
Reason for write EPIPE error in my implementation ?
25 mai 2019, par Chrisl446I 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 :
multer-s3 <- this one with the transform option, not the standard multer-s3 package
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;