
Recherche avancée
Autres articles (54)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
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 -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (10689)
-
How can I convert a mp4 file to webm using java only ?
31 octobre 2023, par mir-shakirI am trying to convert a file from mp4 to webm. I am trying to use the JAVE wrapper of FFmpeg. I am getting the error.
Here is my code :


private String ConvertVideo(URL url) {
 File target =null;
 MultimediaObject multimediaObject = new MultimediaObject(url);
 try {
 target = File.createTempFile("target", ".webm");

 } catch (IOException e1) {
 e1.printStackTrace();
 }
 AudioAttributes audio = new AudioAttributes();
 audio.setCodec(AudioAttributes.DIRECT_STREAM_COPY);
 audio.setBitRate(new Integer(128000));
 audio.setSamplingRate(new Integer(44100));
 audio.setChannels(new Integer(2));
 VideoAttributes video = new VideoAttributes();
 video.setBitRate(new Integer(160000));
 video.setFrameRate(new Integer(15));
 video.setCodec("libvpx-vp9");
 video.setCodec(VideoAttributes.DIRECT_STREAM_COPY);
 EncodingAttributes attrs = new EncodingAttributes();
 attrs.setFormat("webm");
 attrs.setAudioAttributes(audio);
 attrs.setVideoAttributes(video);
 
 try {
 Encoder encoder = new Encoder(); 
 encoder.encode(multimediaObject, target, attrs);
 } catch (Exception e) { 
 e.printStackTrace();
 }
 
 return "success";
}



I am getting the below error :


2022-Jun-13 11:12:55 AM [qtp1914526580-175] ERROR ws.schild.jave.Encoder - Process exit code: 1 to target2636257785060285182.webm
ws.schild.jave.EncoderException: Exit code of ffmpeg encoding run is 1



What am I doing wrong here. Is there any other way around it ? I want to do it only using java.


-
ProcessBuilder is not called when trying to start a process
15 juin 2022, par xnokI am trying to understand more about the ffmpeg usage in JavaCV for android studio and for said task I am trying to use ProcessBuilder. I tried writting a simple program to debug the
pb.start();
Although, I am not getting a response. What I did was to start a default/empty activity and pasted the following program :

package com.example.myapplication;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;

import org.bytedeco.javacpp.Loader;

import android.os.Build;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
 static final int cols = 192;
 static final int rows = 108;
 static final String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);
 static final String rtmp_url = "test.flv";
 static final String[] command = {ffmpeg,
 "-y",
 "-f", "rawvideo",
 "-vcodec", "rawvideo",
 "-pix_fmt", "bgr24",
 "-s", (Integer.toString(cols) + "x" + Integer.toString(rows)),
 "-r", "10",
 "-i", "pipe:",
 "-c:v", "libx264",
 "-pix_fmt", "yuv420p",
 "-preset", "ultrafast",
 "-f", "flv",
 rtmp_url};
 @RequiresApi(api = Build.VERSION_CODES.O)
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 new Thread(t1).start();

 }
 private static Runnable t1 = () -> {
 Log.e("TAG", "void OnCreate called successfully!");
 ProcessBuilder pb = new ProcessBuilder(command).redirectErrorStream(true);
 pb.redirectErrorStream(true);
 try {
 Process process = pb.start();
 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
 OutputStream writer = process.getOutputStream();
 Log.e("TAG", "Something good happened here");
 } catch (IOException e) {
 e.printStackTrace();
 Log.e("TAG", "Nothing good happened here");
 }
 };


}



My current problem is that I can't seem to start properly the processBuilder process via pb.start() ;


I get the following logs from the logcat panel :


2022-06-14 17:24:46.328 13371-13371/com.example.myapplication E/TAG: void OnCreate called successfully!
2022-06-14 17:24:46.333 13371-13371/com.example.myapplication E/TAG: Nothing good happened here



I'd like to understand why is it skipping the try/catch block and not starting the process ?


EDIT : I made some changes as per @g00se's suggestions and I got the following stack trace from the code above :


2022-06-15 00:32:26.700 29787-29787/? E/USNET: USNET: appName: com.example.myapplication
2022-06-15 00:32:29.328 29787-29828/com.example.myapplication E/TAG: void OnCreate called successfully!
2022-06-15 00:32:29.330 29787-29828/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: Thread-4
 Process: com.example.myapplication, PID: 29787
 java.lang.NullPointerException
 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
 at com.example.myapplication.MainActivity.lambda$static$0(MainActivity.java:48)
 at com.example.myapplication.MainActivity$$ExternalSyntheticLambda0.run(Unknown Source:0)
 at java.lang.Thread.run(Thread.java:920)



-
FFMPEG on MACOSX is complaining "no matches found"
15 juin 2022, par Byte PlayerI have a FFMPEG command line function that works perfectly on Windows but on Mac produces the following error :


"no matches found [1:a]adelay=15000:all=1[aud2]"

"no matches found [2:a]adelay=5000:all=1[aud3]"

Here is the command (less the full paths which just made it very hard to read). I've verified that the files exist at the paths specified by copying the file path from the command line and going into terminal, typing "open" then pasting in the copied path and pressing enter. In all cases they played.


ffmpeg -loglevel warning -hide_banner -y -i "file1.mp3" -t 5 -i "file2.mp3" -i "file3.mp3" -i "file4.mp3" -ss 25 -t 15 -i "file5.mp3" -ss 15 -t 5 -i "file6.mp3" -filter_complex [1:a]adelay=15000:all=1[aud1];[2:a]adelay=5000:all=1[aud2];[4:a]adelay=25000:all=1[aud4];[5:a]adelay=5000:all=1[aud5];[aud1][aud2][aud4][aud5]amix=inputs=6:duration=longest:dropout_transition=0:normalize=0 "output.mp3"



I know the immediate response (as it should be), is update your FFMPEG but I got the latest build (built on 2022-06-12) and here's what it reports...


ffmpeg version N-107092-g843c4346b1-tessus Copyright (c) 2000-2022 the FFmpeg developers
 built with Apple clang version 11.0.0 (clang-1100.0.33.17)
 configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
 libavutil 57. 26.100 / 57. 26.100
 libavcodec 59. 33.100 / 59. 33.100
 libavformat 59. 24.100 / 59. 24.100
 libavdevice 59. 6.100 / 59. 6.100
 libavfilter 8. 40.100 / 8. 40.100
 libswscale 6. 6.100 / 6. 6.100
 libswresample 4. 6.100 / 4. 6.100
 libpostproc 56. 5.100 / 56. 5.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...



Any insight or help would be GREATLY appreciated.