
Recherche avancée
Médias (1)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
Autres articles (81)
-
Installation en mode ferme
4 février 2011, parLe mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
C’est la méthode que nous utilisons sur cette même plateforme.
L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...) -
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
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 (5285)
-
FFMPEG command is not Working when set project's target SDK version 29(Android Q issue)
1er juin 2020, par SAVALIYA REENAI am using the FFMPEG library to get a watermark stamp on video. It is working like charm in all versions when my project's target SDK version is 28 but when i set target sdk version 29, It gives me below exception.



E/FFmpeg : Exception while trying to run : [Ljava.lang.java.io.IOException : Cannot "/data/user/0/com.videowatermark.addtextandtimestampongalleryvideos/files/ffmpeg" : error=13, Permission denied



Caused by : java.io.IOException : error=13, Permission denied at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(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.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10) at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38) at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:10) at android.os.AsyncTask$3.call(AsyncTask.java:378) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919)



//show this error


-
Nginx + rtmp + ffmpeg best practice to publish multiple resolutions streaming from video file
7 novembre 2019, par youssef hamdaneI want to make livestream from video file to multiple resolutions (480,720) using nginx and rtmp, what is the best practice that I can do for that :
1 - transcode video and store it with all resolutions that I need when user upload it using ffmpeg, and then publish every file directly
example :
rtmp {
server {
listen 1935;
notify_method get;
application live {
live on;
ffmpeg -re -i /path/video_720.mp4
-re -i /path/video_480.mp4
-map 0 vcodec libx264 -threads 0 -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost:1935/show/${name}_720
-map 0 vcodec libx264 -threads 0 -vprofile baseline -acodec aac -strict -2 -f flv rtmp://localhost:1935/show/${name}_480
}
application show {
live on;
hls on;
hls_path /stream/live/hls;
hls_nested on;
record off;
# Instruct clients to adjust resolution according to bandwidth
hls_variant _720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution
hls_variant _480 BANDWIDTH=448000; # Medium bitrate, SD resolution
}
}
}2 - keep original video and publish it on different resolutions with ffmpeg
example :
rtmp {
server {
listen 1935;
notify_method get;
application live {
live on;
exec_pull ffmpeg -re -i http://server_ip/$app/$name -vcodec libx264 -threads 0 -vprofile baseline -acodec aac -strict -2 -b:v 1920k -b:a 128k -vf "scale=1280:trunc(ow/a/2)*2" -f flv rtmp://localhost:1935/show/${name}_720
-vcodec libx264 -threads 0 -vprofile baseline -acodec aac -strict -2 -b:v 1024k -b:a 128k -vf "scale=854:trunc(ow/a/2)*2" -f flv rtmp://localhost:1935/show/${name}_480;
}
application show {
live on;
hls on;
hls_path /home/stream/live/hls;
hls_nested on;
record off;
# Instruct clients to adjust resolution according to bandwidth
hls_variant _720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution
hls_variant _480 BANDWIDTH=448000; # Medium bitrate, SD resolution
}
}
} -
My own music bot randomly stops when playing a song, no errors, just like the song has ended
18 avril 2019, par StasioI made a discord music bot but there is one problem :
When i play something it works perfectly for a moment but then sometimes music ends in the middle of the song just like the song has ended.
When there are some songs in queue and this bug happens the bot starts playing another song from the queue. Im using ffmpeg, ytdl-core, simple-youtube-api,
opusscript. What do u guys think about it ? I don’t think that this problem is caused by my code cuz this error happens randomly, sometimes 3 songs in a row are played normaly and sometimes it crashes in the middle of the 1 song, so he starts playing the next song in queue.const arg = msg.content.split(' ');
const searchString = arg.slice(1).join(' ');
const url = arg[1] ? arg[1].replace(/<(.+)>/g, '$1') : '';
const serverQueue = queue.get(msg.guild.id);
let command = msg.content.toLowerCase().split(' ')[0];
command = command.slice(PREFIX.length)
if (command === 'play' || command === 'p') {
msg.delete()
const voiceChannel = msg.member.voiceChannel;
let emoji = msg.guild.emojis.find(x => x.name === "2Head")
if (!voiceChannel) return msg.channel.send('Nie jesteś nawet na kanale głosowym zjebie ' + emoji);
const permissions = voiceChannel.permissionsFor(msg.client.user);
if (!permissions.has('CONNECT')) {
return msg.channel.send('Nie mam permisji zeby sie polaczyc ;/');
}
if (!permissions.has('SPEAK')) {
return msg.channel.send('Nie moge mowic odmutujcie mnie : )');
}
if (url.match(/^https?:\/\/(www.youtube.com|youtube.com)\/playlist(.*)$/)) {
const playlist = await youtube.getPlaylist(url);
const videos = await playlist.getVideos();
for (const video of Object.values(videos)) {
const video2 = await youtube.getVideoByID(video.id);
await handleVideo(video2, msg, voiceChannel, true);
}
return msg.channel.send(`✅ Playlist: **${playlist.title}** has been added to the queue!`);
} else {
try {
var video = await youtube.getVideo(url);
} catch (error) {
try {
var videos = await youtube.searchVideos(searchString, 1);
var video = await youtube.getVideoByID(videos[0].id);
} catch (err) {
console.error(err);
let emoji = msg.guild.emojis.find(x => x.name === "autism")
return msg.channel.send('Nie ma takiego filmu na całym youtubie ' + emoji );
}
}
return handleVideo(video, msg, voiceChannel);
}
}