
Recherche avancée
Médias (1)
-
Carte de Schillerkiez
13 mai 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Texte
Autres articles (80)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Amélioration de la version de base
13 septembre 2013Jolie 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 (...) -
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" (...)
Sur d’autres sites (8481)
-
avformat/mov : parse multiple iTunes cover images
29 mars 2018, par Timo Teräsavformat/mov : parse multiple iTunes cover images
Multiple cover images are supported by having multiple data atoms
inside the covr atom. AtomicParsley and mutagen amongst others
support and document this construct.Signed-off-by : Timo Teräs <timo.teras@iki.fi>
Signed-off-by : Michael Niedermayer <michael@niedermayer.cc> -
Elixir long running background task doesn't complete, sometimes crashes
29 mars 2018, par KulixAs a little bit of background, I have an endpoint that is responsible for video upload. What I want to do, is copy the video file to a temporary location from the request, and spin up an asynchronous task (ffmpeg shell process) to transcode that video in the background so that my endpoint can return a 200 in a timely manner, and the response does not wait for ffmpeg to finish transcoding that video.
Here is my code from the controller.
def create(conn, %{"file" => file ... })
uuid = Video.uuid()
tmp_path = Application.get_env(:myapp, :video_tmp_path) <> "/" <> uuid
:ok = File.cp(file.path, tmp_path)
VideoService.process(tmp_path, final_path)The inside of VideoService looks like the following.
defmodule MyApp.Services do
defmodule VideoService do
def process(tmp_path, final_path) do
Task.start_link fn ->
System.cmd("ffmpeg", ["-i", tmp_path, final_path, "-hide_banner"])
File.rm(tmp_path)
end
end
end
endThe problem I am having here is that no matter what, nothing past the
System.cmd("ffmpeg")
call executes in theVideoService
, and sometimes theSystem.cmd
call doesn’t even spin up anffmpeg
process. Am I doing something wrong here ? What I need is a way to spin thisffmpeg
shell process out in the background from the controller / service and respond with a 200 on video upload. Thanks for help in advance. I am new to elixir / OTP, so I’m sure I’m doing something stupid.I also randomly see the following error
erl_child_setup: failed with error 32 on line 240
-
ffmpeg Command stop executing in background after the application kill
26 mars 2018, par Amjad KhanFFmpeg Command are executed and that are working well, Implemented on android.
But I am facing problem when the user kill the application the command which I have executed it is terminated.
I have created background service, which is running in the background but the command stop in the middle, is there any way to handle it
Code here
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
Log.e(TAG, "FAILED with output : " + s);
}
@Override
public void onSuccess(String s) {
Log.e(TAG, "SUCCESS with output : " + s);
}
@Override
public void onProgress(String s) {
//This method get stoped
}
@Override
public void onStart() {
}
@Override
public void onFinish() {
}
});