
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (39)
-
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...) -
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 -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)
Sur d’autres sites (4968)
-
Why storage access functions not working on android 10 API-29 ? error=13, Permission denied ?
8 janvier 2021, par Rpatel

This example code is to create video from images and music.
Code running on till API level 28 but when I just upgrade to
Build version 29 then it starts crashing. I tried the most solution
but could not find the proper reason and solution.

Please let me know...



2


021-01-08 19:48:16.045 18413-19578/com.example.photovideomaker E/audio: io
 java.io.IOException: Cannot run program "/data/user/0/com.example.photovideomaker/files/ffmpeg": error=13, Permission denied
 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)
 at java.lang.Runtime.exec(Runtime.java:698)
 at java.lang.Runtime.exec(Runtime.java:563)
 at com.example.photovideomaker.service.CreateVideoService.joinAudio(CreateVideoService.java:252)
 at com.example.photovideomaker.service.CreateVideoService.createVideo(CreateVideoService.java:89)
 at com.example.photovideomaker.service.CreateVideoService.onHandleIntent(CreateVideoService.java:83)
 at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78)
 at android.os.Handler.dispatchMessage(Handler.java:107)
 at android.os.Looper.loop(Looper.java:214)
 at android.os.HandlerThread.run(HandlerThread.java:67)
 Caused by: java.io.IOException: error=13, Permission denied
 at java.lang.UNIXProcess.forkAndExec(Native Method)
 at java.lang.UNIXProcess.<init>(UNIXProcess.java:133)
 at java.lang.ProcessImpl.start(ProcessImpl.java:141)
 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
 at java.lang.Runtime.exec(Runtime.java:698) 
 at java.lang.Runtime.exec(Runtime.java:563) 
 at com.example.photovideomaker.service.CreateVideoService.joinAudio(CreateVideoService.java:252) 
 at com.example.photovideomaker.service.CreateVideoService.createVideo(CreateVideoService.java:89) 
 at com.example.photovideomaker.service.CreateVideoService.onHandleIntent(CreateVideoService.java:83) 
 at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:78) 
 at android.os.Handler.dispatchMessage(Handler.java:107) 
 at android.os.Looper.loop(Looper.java:214) 
 at android.os.HandlerThread.run(HandlerThread.java:67) 
</init>




This function throwing the error "On Process.runtime"




private void createVideo() {
 long startTime = System.currentTimeMillis();
 toatalSecond = (application.getSecond() * ((float) application.getSelectedImages().size())) - DEFAULT_FONT_SCALE;
 joinAudio();
 while (true) {
 if (ImageCreatorService.isImageComplate) {
 Log.e("image creation ", " complte");

 break;
 }else {
 Log.e("image creation ", "not complte");
 }
 }
 Log.e("createVideo", "video create start");
 new File(FileUtils.TEMP_DIRECTORY, "video.txt").delete();
 for (int i = 0; i < application.videoImages.size(); i++) {
 appendVideoLog(String.format("file '%s'", application.videoImages.get(i)));
 }

 File r0=new File(FileUtils.TEMP_DIRECTORY, "video.txt");
 String videoPath = new File(FileUtils.APP_DIRECTORY, getVideoName()).getAbsolutePath();
 String[] inputCode = application.getMusicData() != null ? new String[]{
 FileUtils.getFFmpeg(this), "-r",
 String.valueOf(BitmapDescriptorFactory.HUE_ORANGE / application.getSecond()),
 "-f", "concat", "-safe", "0", "-i", r0.getAbsolutePath(), "-i",
 audioFile.getAbsolutePath(), "-strict", "experimental", "-r", "30",
 "-t", String.valueOf(toatalSecond), "-c:v", "libx264", "-preset",
 "ultrafast", "-pix_fmt", "yuv420p", "-ac", "2", videoPath}
 : new String[]{FileUtils.getFFmpeg(this),
 "-r", String.valueOf(BitmapDescriptorFactory.HUE_ORANGE / application.getSecond()),
 "-f", "concat", "-i", r0.getAbsolutePath(), "-r", "30", "-c:v", "libx264", "-preset", "ultrafast", "-pix_fmt", "yuv420p", videoPath};

 System.gc();
 Process process = null;
 try {
 process = Runtime.getRuntime().exec(inputCode);
 while (!Util.isProcessCompleted(process)) {
 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
 while (true) {
 String line = reader.readLine();
 if (line != null) {
 Log.e("process", line);
 appendLog(line);
 final int incr = durationToprogtess(line);
 new Handler(Looper.getMainLooper()).post(new Runnable() {
 public void run() {
 if (receiver != null) {
 receiver.onVideoProgressUpdate(incr);
 }
 }
 });
 mBuilder.setProgress(100, ((int) ((75.0f * ((float) incr)) / 100.0f)) + 25, false);
 mNotifyManager.notify(1001, mBuilder.build());
 }else {
 break;
 }
 }
 }
 } catch (IOException e) {
 e.printStackTrace();
 } finally {
 Util.destroyProcess(process);
 }
 mBuilder.setContentText("Video created :" + FileUtils.getDuration(System.currentTimeMillis() - startTime)).setProgress(0, 0, false);
 mNotifyManager.notify(1001, mBuilder.build());
 try {
 long fileSize = new File(videoPath).length();
 String artist = getResources().getString(R.string.artist_name);
 ContentValues values = new ContentValues();
 values.put("_data", videoPath);
 values.put("_size", Long.valueOf(fileSize));
 values.put("mime_type", "video/mp4");
 values.put("artist", artist);
 values.put("duration", Float.valueOf(toatalSecond * 1000.0f));
 getContentResolver().insert(Media.getContentUriForPath(videoPath), values);
 } catch (Exception e2) {
 e2.printStackTrace();
 }
 try {
 sendBroadcast(new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE", Uri.fromFile(new File(videoPath))));
 } catch (Exception e3) {
 e3.printStackTrace();
 }

 buildNotification(videoPath);
 final String str = videoPath;
 new Handler(Looper.getMainLooper()).post(new Runnable() {
 public void run() {
 if (receiver != null) {
 receiver.onVideoProgressUpdate(100);
 receiver.onProgressFinish(str);
 }
 }
 });
 FileUtils.deleteTempDir();
 stopSelf();
 }



I have tried checking the directory in storage and check mkdir is working or not but this function purely works for creating video from a collection of images, themes, and audio. as per android


-
PhpVideoToolKit permission denied
21 septembre 2016, par nikoz84I’m try to execute this PHP code
exec("/root/bin/ffmpeg -version 2>&1", $output);
print_r($output);But always the output return permission denied
Array ( [0] => sh: /root/bin/ffmpeg: Permission denied )
and the output from library PhpVideoToolKit
sh: /root/bin/ffmpeg: Permission denied
how can i give permission for execute to my apache service ? i’m used CENTOS
-
How do I enable ffmpeg python inside a docker ?
4 mars 2024, par Noam ZadokI have a problem with enabling ffmpeg streaming inside my Docker container, and specifically, inside a Python service running inside the Docker.
I need to stream my screen view, and I'm using the 'x11grab' source, and the destination is an RTSP server (AWS IVS). This is my code for the stream :


bit_rate = f"{self.config_service.thermal_stream_bit_rate}k" # 150k
vsync_param = self.config_service.stream_vsync_param # 'cfr'
frame_rate = self.config_service.stream_frame_rate # 5
stream_command = ffmpeg.input(
 os.getenv('DISPLAY'), # env var passed into the container
 s=f"{self.config_service.display_width}x{self.config_service.display_height}",
 f="x11grab",
 r=frame_rate,
 fflags="nobuffer+discardcorrupt+shortest",
 loglevel="level+debug",
 )..output(
 self.dest_path, # My rstp url
 vcodec='nvenc_h264',
 preset='hp',
 pix_fmt=pix_format_param,
 tune="zerolatency",
 b=bit_rate,
 g=keyframe_interval_seconds,
 r=frame_rate,
 format="flv",
 )
streaming_process = await stream_command.run_asyncio(pipe_stderr=True)



When I run the code, I receive this error :
x11grab: No such file or directory
.

When I enter the Docker container, and run Python, and then the script :


import ffmpeg

>>> x11_display = ':0'
>>> format = "x11grab"
>>> screen_width = f"1920x1080"
>>> bit_rate = "150k"
>>> pix_format_param = "yuv420p"
>>> keyframe_interval_seconds = 2
>>> frame_rate = 5
>>> dest_path = 'rtmps://XXXX.global-contribute.live-video.net:443/app/YYYY'
>>> command = ffmpeg.input(x11_display, s=screen_width, f="x11grab", r=frame_rate, fflags="nobuffer+discardcorrupt+shortest", loglevel="level+debug",).output(dest_path, vcodec='nvenc_h264', preset='hp', pix_fmt=pix_format_param, tune="zerolatency", b=bit_rate, g=keyframe_interval_seconds, r=frame_rate, format="flv",)
>>> command.run()



The stream is starting. I took the exact command by printing inside my service script (print the ffmpeg.input, and the ffmpeg.output).
Also, when I tried async running the command (as in my script) inside the Python console, it also succeeded, so it's not related to that. Basically there are no functional differences between the commands.
I've tried comparing the Python version, the ffmpeg version, the file system permissions - they are the same in the script run and in the python console.
I don't understand what configuration am I missing.
Thank you in advance.