
Recherche avancée
Autres articles (107)
-
Les vidéos
21 avril 2011, parComme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
Sur d’autres sites (8582)
-
Build : Set atBegin option for watch task
5 juin 2014, par jzaeffererBuild : Set atBegin option for watch task
-
POST http://localhost:3000/api/video/thumbnail 500 (Internal Server Error) MongoDB and FFmpeg
5 juillet 2022, par VoicedCreatorI am trying to insert a thumbnail on my page using POST and im getting this error
I want to screenshot a video using FFmpeg


const express = require('express');
const router = express.Router();
const multer = require('multer');
var ffmpeg = require('fluent-ffmpeg');
const { User } = require("../models/User");

const { auth } = require("../middleware/auth");
const storage = multer.diskStorage({
 destination: function (req, file, cb) {
 cb(null, 'uploads/')
 },
 filename: function (req, file, cb) {
 cb(null, `${Date.now()}_${file.originalname}`)
 },
 fileFilter: (req, file, cb) => {
 const ext = path.extname(file.originalname);
 if(ext !== '.mp4' || ext !== '.mov' || ext !== '.wmv'){
 return cb(res.status(400).end('Solo archivos mp4-mov-wmv son aceptados'), false);
 }
 cb(null, true)
 }
 })
 
 const upload = multer({ storage: storage }).single("file")


//=================================
// User
//=================================

router.post("/uploadfiles", (req, res) => {

 upload(req, res, err => {
 if(err) {
 return res.json({ success: false, err })
 }
 return res.json({ success: true, filePath: res.req.file.path, fileName: res.req.file.filename })
 })

});

router.post("/thumbnail", (req, res) => {


 let filePath = ""
 let fileDuration = ""


 ffmpeg.ffprobe(req.body.url, function (err, metadata) {
 console.dir(metadata); // all metadata
 console.log(metadata.format.duration);
 console.log(metadata) 
 fileDuration = metadata.format.duration
 });


 ffmpeg(req.body.url)
 .on('filenames', function (filenames) {
 console.log('Will generate ' + filenames.join(', '))
 console.log(filenames)


 filePath = "uploads/thumbnails/" + filenames[0]
 })
 .on('end', function () {
 console.log('Screenshots taken');
 return res.json({ success: true, url: filePath, fileName: filenames, fileDuration: fileDuration });
 })
 .on('error', function (err) {
 console.error(err);
 return res.json({ success: false, err });
 })
 .screenshots({
 // Will take screenshots at 20%, 40%, 60% and 80% of the video
 count: 3,
 folder: 'uploads/thumbnails',
 size: '320x240',
 //'%b': input basename (filename w/o extension)
 filename: 'thumbnail-%b.png'
 })
});




router.post("/thumbnail", (req, res) => {


 let filePath = ""
 let fileDuration = ""


 ffmpeg(req.body.url)
 .on('filenames', function (filenames) {
 console.log('Will generate ' + filenames.join(', '))
 console.log(filenames)


 filePath = "uploads/thumbnails/" + filenames[0]
 })
 .on('end', function () {
 console.log('Screenshots taken');
 return res.json({ success: true, url: filePath, fileName: filenames, fileDuration: fileDuration });
 })
 .on('error', function (err) {
 console.error(err);
 return res.json({ success: false, err });
 })
 .screenshots({
 // Will take screenshots at 20%, 40%, 60% and 80% of the video
 count: 3,
 folder: 'uploads/thumbnails',
 size: '320x240',
 //'%b': input basename (filename w/o extension)
 filename: 'thumbnail-%b.png'
 })
});



module.exports = router;



Error : POST http://localhost:3000/api/video/thumbnail 500 (Internal Server Error)
TypeError : Cannot read properties of undefined (reading 'format')


I think is because ffmpeg is not connecting to mongodb


-
Building my JAVA parameter array for FFMPEG
29 janvier 2016, par user3541092FFmpeg Version : N-63893-gc69defd Copyright (c) 2000-2014 the FFmpeg developers
built on Jul 16 2014 05:38:01 with gcc 4.6 (Debian 4.6.3-1)Machine : Amazon Linux t2.micro (free tier)
Sample File : sample_iTunes.mov
Sample File URL : https://support.apple.com/en-us/HT201549I’m trying to replicate the following FFmpeg command, using a string array and then pass this array into the Runtime.getRuntime().exec().
ffmpeg -i file:/var/local/ffmpegtest/media_input/sample_iTunes.mov -pix_fmt yuv420p -c:v libx264 -vtag mp42 -metadata major_brand="mp42" -b:v 8000k -minrate 8000k -maxrate 10000k -ac 2 -strict experimental -c:a aac -b:a 256k -metadata:s:a:0 handler="Stereo" /var/local/ffmpegtest/media_output/sample_iTunes.mp4 -y
NOTE : This works when I pass the full command, as a single string into Runtime.getRuntime().exec().
String _cmd = "ffmpeg -i %s -pix_fmt yuv420p -c:v libx264 -vtag mp42 -metadata major_brand=\"mp42\" "
+ "-b:v 8000k -minrate 8000k -maxrate 10000k -ac 2 -strict experimental -c:a aac -b:a 256k -metadata:s:a:0 handler=\"Stereo\" %s -y";
String _ffmpegCommand = String.format(_cmd, _inputFile, _outPutFile);
p = Runtime.getRuntime().exec(_ffmpegCommand);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}I started out with just a basic parameter list. As I add add each additional parameter, I re-build the JAR file and upload it to my EC2 instance to test for any errors.
The following string array works :
try
{
String[] _params = {"ffmpeg",
"-i",
String.format("%s", _inputFile),
"-pix_fmt",
"yuv420p",
"-c:v",
"libx264",
String.format("%s", _outPutFile),
"-y"};
p = Runtime.getRuntime().exec(_params);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}
catch (Exception e) {
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}However, when I continue to build the array with additional parameters, I begin to experience problems (lets add -vtag mp42) :
try
{
String[] _params = {"ffmpeg",
"-i",
String.format("%s", _inputFile),
"-pix_fmt",
"yuv420p",
"-c:v",
"libx264",
"-vtag", // <---- New
"mp42", // <--- New
String.format("%s", _outPutFile),
"-y"};
p = Runtime.getRuntime().exec(_params);
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}
catch (Exception e) {
BufferedReader _reader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String _line = null;
while((_line = _reader.readLine()) != null) {
lw.writeLine(_logPath + _logName, _line);
System.out.println(_line);
}
}Error Message : Could not write header for output file #0 (incorrect codec parameters ?) : Invalid data found when processing input
Full Log output for errant trail run :
29 Jan 2016 03:45:09 UTC - Running FFMpeg...
29 Jan 2016 03:45:09 UTC - Input file: /var/local/ffmpegtest/media_input/sample_iTunes.mov
29 Jan 2016 03:45:09 UTC - Output file: /var/local/ffmpegtest/media_output/sample_iTunes.mp4
29 Jan 2016 03:45:09 UTC - ffmpeg version N-63893-gc69defd Copyright (c) 2000-2014 the FFmpeg developers
29 Jan 2016 03:45:09 UTC - built on Jul 16 2014 05:38:01 with gcc 4.6 (Debian 4.6.3-1)
29 Jan 2016 03:45:09 UTC - configuration: --prefix=/root/ffmpeg-static/64bit --extra-cflags='-I/root/ffmpeg-static/64bit/include -static' --extra-ldflags='-L/root/ffmpeg-static/64bit/lib -static' --extra-libs='-lxml2 -lexpat -lfreetype' --enable-static --disable-shared --disable-ffserver --disable-doc --enable-bzlib --enable-zlib --enable-postproc --enable-runtime-cpudetect --enable-libx264 --enable-gpl --enable-libtheora --enable-libvorbis --enable-libmp3lame --enable-gray --enable-libass --enable-libfreetype --enable-libopenjpeg --enable-libspeex --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-version3 --enable-libvpx
29 Jan 2016 03:45:09 UTC - libavutil 52. 89.100 / 52. 89.100
29 Jan 2016 03:45:09 UTC - libavcodec 55. 66.101 / 55. 66.101
29 Jan 2016 03:45:09 UTC - libavformat 55. 43.100 / 55. 43.100
29 Jan 2016 03:45:09 UTC - libavdevice 55. 13.101 / 55. 13.101
29 Jan 2016 03:45:09 UTC - libavfilter 4. 8.100 / 4. 8.100
29 Jan 2016 03:45:09 UTC - libswscale 2. 6.100 / 2. 6.100
29 Jan 2016 03:45:09 UTC - libswresample 0. 19.100 / 0. 19.100
29 Jan 2016 03:45:09 UTC - libpostproc 52. 3.100 / 52. 3.100
29 Jan 2016 03:45:09 UTC - Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/var/local/ffmpegtest/media_input/sample_iTunes.mov':
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - major_brand : qt
29 Jan 2016 03:45:09 UTC - minor_version : 537199360
29 Jan 2016 03:45:09 UTC - compatible_brands: qt
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:32
29 Jan 2016 03:45:09 UTC - Duration: 00:01:25.50, start: 0.000000, bitrate: 307 kb/s
29 Jan 2016 03:45:09 UTC - Stream #0:0(eng): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 261 kb/s, 10 fps, 10 tbr, 3k tbn, 25 tbc (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:33
29 Jan 2016 03:45:09 UTC - handler_name : Apple Video Media Handler
29 Jan 2016 03:45:09 UTC - encoder : 3ivx D4 4.5.1
29 Jan 2016 03:45:09 UTC - Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 32000 Hz, mono, fltp, 43 kb/s (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:34
29 Jan 2016 03:45:09 UTC - handler_name : Apple Sound Media Handler
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] using SAR=1/1
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX AVX2 FMA3 BMI1 BMI2
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] profile High, level 2.2
29 Jan 2016 03:45:09 UTC - [libx264 @ 0x30c2c00] 264 - core 129 r2230 1cffe9f - H.264/MPEG-4 AVC codec - Copyleft 2003-2012 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=10 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
29 Jan 2016 03:45:09 UTC - [mp4 @ 0x30c21a0] Tag mp42/0x3234706d incompatible with output codec id '28' ([33][0][0][0])
29 Jan 2016 03:45:09 UTC - Output #0, mp4, to '/var/local/ffmpegtest/media_output/sample_iTunes.mp4':
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - major_brand : qt
29 Jan 2016 03:45:09 UTC - minor_version : 537199360
29 Jan 2016 03:45:09 UTC - compatible_brands: qt
29 Jan 2016 03:45:09 UTC - Stream #0:0(eng): Video: h264 (libx264) (mp42 / 0x3234706D), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 10 fps, 90k tbn, 10 tbc (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:33
29 Jan 2016 03:45:09 UTC - handler_name : Apple Video Media Handler
29 Jan 2016 03:45:09 UTC - encoder : Lavc55.66.101 libx264
29 Jan 2016 03:45:09 UTC - Stream #0:1(eng): Audio: aac (libvo_aacenc), 32000 Hz, mono, s16, 128 kb/s (default)
29 Jan 2016 03:45:09 UTC - Metadata:
29 Jan 2016 03:45:09 UTC - creation_time : 2005-10-17 22:54:34
29 Jan 2016 03:45:09 UTC - handler_name : Apple Sound Media Handler
29 Jan 2016 03:45:09 UTC - encoder : Lavc55.66.101 libvo_aacenc
29 Jan 2016 03:45:09 UTC - Stream mapping:
29 Jan 2016 03:45:09 UTC - Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
29 Jan 2016 03:45:09 UTC - Stream #0:1 -> #0:1 (aac (native) -> aac (libvo_aacenc))
29 Jan 2016 03:45:09 UTC - Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input