
Recherche avancée
Autres articles (104)
-
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 (...) -
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 (11542)
-
FFmpeg conform DASH to YouTube Live Stream requirements
4 septembre 2023, par Aniol PagèsI'm trying to stream to YouTube using FFmpeg and DASH. I've generated the stream key and I'm successfully sending the generated files to YouTube. However, YouTube refuses the MPD manifest because it has two AdaptationSet (one for video and one for audio), and the documentation specifies that I should use only one for both video and audio


I've tried to use the
-adaptation_sets
flag unsuccessfully, and also the-map
flag.

Here is one of the commands I've tried :

ffmpeg -re -i "/Users/user/Desktop/file.mp4" \ -map 0:v -map 0:a \ -use_template 1 -use_timeline 1 -window_size 5 -min_seg_duration 5000000 \ -f dash dash.mpd


And with the
-adaptation_sets
flag :
ffmpeg -re -i "/Users/aniolpages/Desktop/2023-09-03 Taller colar filtrar assubtilar.mp4" -map 0 -map 0 -c:a aac -c:v libx264 \ -use_timeline 1 -use_template 1 \ -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \ -f dash dash.mpd


Has someone been successful to conform the manifest to YouTube requirements ?


Thank you very much !


-
ffmpeg.exe not found inside project directory
8 février 2019, par BayLifeI´m currently working on my first electron / react app, which makes use of ffmpeg. I do have a problem to link the .exe file correctly.
The prolem I´m facing is that I
ffmpeg.exe
is not found when trying to link it with a relative path inside my project directory. When using an absolute path it does work.The exe files are in the sub-folder of the current directroy.
It does work when I´m using such path :
'C:\\Users\\xxx\\Documents\\development\\ytDownloader\\app\\utils\\ffmpeg\\ffprobe.exe'
But when trying it like this
.setFfmpegPath('.\\ffmpeg\\ffmpeg.exe')
or
'./ffmpeg/ffmpeg.exe'
it does not working.
Additionally I would really like to avoid using
\\
in my project.Does someone have an Idea what I´m doing wrong here ?
I get this error message :
Error: spawn .\ffmpeg\ffmpeg.exe ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:229)
at onErrorNT (internal/child_process.js:406)
at process._tickCallback (internal/process/next_tick.js:63) -
AsyncTask publishProgress() does not update progress ffmpeg android
7 février 2014, par jayI am using ffmpeg commands for processing media files.In doInBackground() method i have started the process and every time i get the duration , time values and grabbing progress using time and duration and send progress to publishProgress(progress).When i tested on google nexus(android 4.4 kitkat) it is updating progress dialog correctly but this won't happen in below android 4.4 devices.It is updating with an eye blink of time after completion of the process.
Here is my code :protected String doInBackground(String... params) {
// TODO Auto-generated method stub
try {
proc = mProcess.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
processDuration(proc.getErrorStream());
// Wait for process to exit
int exitCode = 1; // Assume error
try {
exitCode = proc.waitFor();
} catch (InterruptedException e) {
Log.e(TAG, "Process interrupted!", e);
}
onExit(exitCode);
return null;
}
private void onExit(int exitCode) {
// TODO Auto-generated method stub
Log.i("exit code >>>>>>>>..", ""+exitCode);
}
private void processDuration(InputStream errorStream) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(errorStream);
// Find duration
Pattern durPattern = Pattern.compile("(?<=Duration: )[^,]*");
String dur = sc.findWithinHorizon(durPattern, 0);
if (dur==null) throw new RuntimeException("Could not parse duration.");
String[] hms = dur.split(":");
try{
totalSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) * 60 + Double.parseDouble(hms[2]);
Log.i(" progress>>>>>>>>>>>>>",""+totalSecs);
}catch(NumberFormatException e){
}
Pattern timePattern = Pattern.compile("(?<=time=)[\\d:.]*");
String match= sc.findWithinHorizon(timePattern, 0);
while (null != (match = sc.findWithinHorizon(timePattern, 0))) {
hms = match.split(":");
try{
processedSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) * 60 + Double.parseDouble(hms[2]);
}catch(NumberFormatException e){
}
progress = processedSecs / totalSecs;
final int finalProgress=(int)(progress*100);
try {
publishProgress(""+finalProgress);
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publishProgress(""+100);
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
mProgressDialog.dismiss();
}
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
super.onProgressUpdate(progress);
}
public Dialog showDialog(int id) {
// TODO Auto-generated method stub
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(context);
mProgressDialog.setMessage(loading process..");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.setMax(100);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
}Thanks for Your Help..
Please help me out this problem..........