
Recherche avancée
Autres articles (86)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
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. -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
Sur d’autres sites (4389)
-
Discord bot js Bot has no audio after joining with play command. No errors in console or chat
30 mai 2020, par FeXI coded a bot with node.js. I used the example by Crawl for his music bot. I did everything similar to him. After I finished my build everything worked. Every other command and the
play
command. But now after 2 weeks the bot joins the voice channel, light up green but has no sound. I updatedffmpeg
,@discordjs/opus
andffmpeg-static
but the bot still has no audio. Thequeue
,volume
,nowplaying
,skip
,shuffle
,loop
everything works. But after I got the video or playlist with the play command the bot only joins light up green but has no audio.


function play(guild, song) {

 try {

 const ServerMusicQueue = queue.get(guild.id);

 if (!song) {

 ServerMusicQueue.textchannel.send(`ퟎ
-
using ffmpeg as multiple downloads
26 avril 2013, par user2321982well guys, I'm having problems with my application.
well I'll explain more, I'm using the plugin uploader uploads multiple videos and I'm using the ffmpeg extension to my php version.<code class="echappe-js"><script type="text/javascript"><br />
// Convert divs to queue widgets when the DOM is ready<br />
$(function() {<br />
$("#uploader").pluploadQueue({<br />
// General settings<br />
runtimes : &#39;gears,flash,silverlight,browserplus,html5&#39;,<br />
url : &#39;upload.php?id=&lt;?= $login_usuario; ?>&amp;name=&lt;?= $name_user; ?>&#39;,<br />
flash_swf_url : &#39;plugins/plupload/plupload.flash.swf&#39;,<br />
containers: &#39;plupload&#39;,<br />
multipart: true,<br />
urlstream_upload: true,<br />
multipart_params:{directory:&#39;uploads&#39;},<br />
multi_selection: true,<br />
<br />
max_file_size : &#39;500mb&#39;,<br />
chunk_size : &#39;1mb&#39;,<br />
unique_names : true,<br />
<br />
// Specify what files to browse for<br />
filters : [<br />
{title : "Video Files", extensions : "avi,mpg,wmv,flv,3gp,mpeg,mpeg4,mpg4,mp4"}<br />
],<br />
// Silverlight settings<br />
silverlight_xap_url : &#39;plugins/plupload/plupload.silverlight.xap&#39;<br />
});<br />
<br />
uploader.ini();<br />
<br />
// Client side form validation<br />
$(&#39;form&#39;).submit(function(e) {<br />
var uploader = $(&#39;#uploader&#39;).plupload(&#39;getUploader&#39;);<br />
<br />
// Files in queue upload them first<br />
if (uploader.files.length > 0) {<br />
// When all files are uploaded submit form<br />
uploader.bind(&#39;StateChanged&#39;, function() {<br />
if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {<br />
$(&#39;form&#39;)[0].submit();<br />
}<br />
});<br />
<br />
uploader.start();<br />
} else<br />
alert(&#39;You must at least upload one file.&#39;);<br />
<br />
return false;<br />
});<br />
});<br />
</script>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.
well he calls javascript in a php file, in case it will upload the videos.
what I want is to get the length, resolution, file size and take a screenshot of the video randomly, so far so good, the problem is that it only works with only one upload at a time.
When sending more than one he does the procedure with ffmpeg, besides the most is not taking a screenshot of the video.
below is my code<?php
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
if (!extension_loaded ('ffmpeg') ) exit ( 'ffmpeg não foi carregado!' );
// HTTP headers for no cache etc
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
include("includes/seguranca.php");
include("includes/classes/class.mysql.php");
include("includes/funcoes/sql_inject.php");
$id_user = anti_injection($_GET['id']);
session_start();
// Settings
//$targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
$targetDir = 'uploads/';
//$cleanupTargetDir = false; // Remove old files
//$maxFileAge = 60 * 60; // Temp file age in seconds
// 5 minutes execution time
@set_time_limit(5 * 60);
// Uncomment this one to fake upload time
// usleep(5000);
// Get parameters
$chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0;
$chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0;
$fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : '';
// Clean the fileName for security reasons
$fileName = preg_replace('/[^\w\._]+/', '', $fileName);
// Make sure the fileName is unique but only if chunking is disabled
if ($chunks < 2 && file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName)) {
$ext = strrpos($fileName, '.');
$fileName_a = substr($fileName, 0, $ext);
$fileName_b = substr($fileName, $ext);
$count = 1;
while (file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName_a . '_' . $count . $fileName_b))
$count++;
$fileName = $fileName_a . '_' . $count . $fileName_b;
}
// Create target dir
if (!file_exists($targetDir))
@mkdir($targetDir);
// Look for the content type header
if (isset($_SERVER["HTTP_CONTENT_TYPE"]))
$contentType = $_SERVER["HTTP_CONTENT_TYPE"];
if (isset($_SERVER["CONTENT_TYPE"]))
$contentType = $_SERVER["CONTENT_TYPE"];
// Handle non multipart uploads older WebKit versions didn't support multipart in HTML5
if (strpos($contentType, "multipart") !== false) {
if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen($_FILES['file']['tmp_name'], "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($in);
fclose($out);
@unlink($_FILES['file']['tmp_name']);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
} else {
// Open temp file
$out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab");
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($in) {
while ($buff = fread($in, 4096))
fwrite($out, $buff);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
fclose($in);
fclose($out);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
}
$photoName = $_FILES['file']['name'];
$exploded_photoName = explode('.', $photoName);
$user_id = $_SESSION['SESS_MEMBER_ID'];
if(!isset($_SESSION[$photoName])) {
$_SESSION[$photoName] = '1';
}
if($chunk==1){
$movie_file = realpath("/uploads/".$fileName);
// instancia a classe ffmpeg_movie para pegarmos as informações que queremos o vídeo
$movie = new ffmpeg_movie($movie_file);
// pegamos a duranção do video em segundos
$duration = round ( $movie->getDuration() , 0 );
// recebemos o número de frames do vídeo
$totalFrames = $movie->getFrameCount();
// recebemos a altura do vídeo em pixels
$height = $movie->getFrameHeight ();
// recebemos a largura do vídeo em pixels
$width = $movie->getFrameWidth ();
$thumbnailOf = $movie->getFrameRate() * 5;
$thumbnailOf = round ( $movie->getFrameCount() / 2 );
// precisamos criar uma imagem GD para o ffmpeg-php trabalhar nela
$image = imagecreatetruecolor ($width,$height ) ;
// criamos a instancia do frame com a classe ffmpeg_frame
$frame = new ffmpeg_frame ($image);
// escolhemos o frame que queremos salvar como jpeg
$thumbnailOf = rand (1,$movie->getFrameCount());
// recebe o frame
$frame = $movie->getFrame ( $thumbnailOf );
// converte para uma imagem GD
$image = $frame->toGDImage ();
$size = filesize("uploads/".$fileName);
$valuea = rand(0,100);
$valueb = rand(0,100);
$valuec = rand(0,10);
$nome = @md5(date('now') * $valuea - $valueb / $valuec);
$dir = realpath("uploads/snapshots/$nome.jpg");
//salva no HD.
imagejpeg($image, $dir, 100);
$resolu = $width."x".$height;
mysql_query("INSERT INTO video
(poster_id,duration,video,titulo,resolucao,tamanho)
VALUES
('$id_user','$duration','$fileName','$exploded_photoName[0]','$resolu','$size')") or die(mysql_error());
}
// Return JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
?>I did another method not so effective to do what I want but it only works if I open the page individually.
I removed the code from ffmpeg extension and put an include to that page.
<?
ini_set('max_execution_time', 300); //300 seconds = 5 minutes
if (!extension_loaded ('ffmpeg') ) exit ( 'ffmpeg não foi carregado!' );
include("includes/seguranca.php");
include("includes/classes/class.mysql.php");
include("includes/funcoes/sql_inject.php");
$id_user = @anti_injection($_GET['id']);
class process{
public $videos;
public $target;
public $id_vid;
public function screen(){
$videos = $this->videos;
$target = $this->target;
$movie_file = realpath($videos);
// instancia a classe ffmpeg_movie para pegarmos as informações que queremos o vídeo
$movie = new ffmpeg_movie($movie_file);
$totalFrames = $movie->getFrameCount();
$thumbnailOf = $movie->getFrameRate() * 5;
$thumbnailOf = round ( $movie->getFrameCount() / 2 );
// criamos a instancia do frame com a classe ffmpeg_frame
$frame = new ffmpeg_frame ( $image );
// escolhemos o frame que queremos salvar como jpeg
$thumbnailOf = rand (1,$movie->getFrameCount());
// recebe o frame
$frame = $movie->getFrame ( $thumbnailOf );
// converte para uma imagem GD
$image = $frame->toGDImage ();
$valuea = rand(0,100);
$valueb = rand(0,100);
$valuec = rand(0,10);
$nome = @md5(date('now') * $valuea - $valueb / $valuec);
$dir = $target."snapshots/".$nome.".jpeg";
//salva no HD.
imagejpeg($image,$dir, 100);
$q = new Query;
$q ->update('video')
->set(
array(
'screen'=>$nome.".jpeg"
)
)
->where_equal_to(
array(
'id_video'=>$this->id_vid
)
)
->limit(1)
->run();
}
public function duration(){
$videos = $this->videos;
$movie_file = realpath($videos);
// instancia a classe ffmpeg_movie para pegarmos as informações que queremos o vídeo
$movie = new ffmpeg_movie($movie_file);
// pegamos a duranção do video em segundos
$duration = round ( $movie->getDuration() , 0 );
$q = new Query;
$q ->update('video')
->set(
array(
'duration'=>$duration
)
)
->where_equal_to(
array(
'id_video'=>$this->id_vid
)
)
->limit(1)
->run();
}
public function resolution(){
$videos = $this->videos;
$movie_file = realpath($videos);
// instancia a classe ffmpeg_movie para pegarmos as informações que queremos o vídeo
$movie = new ffmpeg_movie($movie_file);
// recebemos a altura do vídeo em pixels
$height = $movie->getFrameHeight ();
// recebemos a largura do vídeo em pixels
$width = $movie->getFrameWidth ();
$resolucao = $width."x".$height;
$q = new Query;
$q ->update('video')
->set(
array(
'resolucao'=>$resolucao
)
)
->where_equal_to(
array(
'id_video'=>$this->id_vid
)
)
->limit(1)
->run();
}
final public function checar($a){
$q = new Query;
$q ->update('video')
->set(
array(
'process'=>$a
)
)
->where_equal_to(
array(
'id_video'=>$this->id_vid
)
)
->limit(1)
->run();
}
}
$q=new Query;
$q->select(
array(
'id_video',
'video',
'dir',
'screen',
'poster_id',
'resolucao',
'duration'
)
)
->from('video')
->run();
if($q){
$users=$q->get_selected();
foreach($users as $user){
$c = new process;
$c->videos = $user['video'];
$c->target = $user['dir'];
$c->id_vid = $user['id_video'];
if(($user['screen'] == 'NULL') or ($user['duration'] == 'NULL') or ($user['resolucao'] == 'NULL')){
$c->checar(0);
if($user['screen'] == 'NULL'){
$c->screen();
}
if($user['duration'] == 'NULL'){
$c->duration();
}
if($user['resolucao'] == 'NULL'){
$c->resolution();
}
}else{
$c->checar(1);
}
}
}
else{
echo 'Sorry, no users found.';
}
?> -
PARADISEC catalog for Users
5 mai, par silviaThis screencast shows how a user of the PARADISEC catalog logs in and explores the collections, items and files that the archive contains.
Category : 2
Uploaded by : Silvia Pfeiffer
Hosted : youtubeThe post PARADISEC catalog for Users first appeared on ginger’s thoughts.