
Recherche avancée
Médias (2)
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Podcasting Legal guide
16 mai 2011, par
Mis à jour : Mai 2011
Langue : English
Type : Texte
Autres articles (55)
-
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...) -
(Dés)Activation de fonctionnalités (plugins)
18 février 2011, parPour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)
Sur d’autres sites (9829)
-
How To Specify FFMPEG Input Volume For Multple Input Files
30 septembre 2014, par gbdI have 6 similar/separate audio input files feeding into ffmpeg - no video. I’m mixing the 6 input channels down to a stereo output using amix and that works fine. But now I need to change the volume of each individual input channel before the mix down - or maybe as part of the mix down. I’ve looked at and tried aeval (which seems very slow) in the form
'aeval=val(0)*volChg1:c=same|val(1)*volChg2:c=same|val(2)*volChg3:c=same|val(3)*volChg4:c=same|val(4)*volChg5:c=same|val(5)*volChg6:c=same'
but that only seems to change the volume of the first channel.
So the whole input part of my ffmpeg expression looks something like this right now :
-i inFilePath1 -i inFilePath2 -i inFilePath3 -i inFilePath4 -i inFilePath5 -i inFilePath6
-filter_complex 'aeval=val(0)*$volChg1:c=same|val(1)*$volChg2:c=same|val(2)*$volChg3:c=same|val(3)*$volChg4:c=same|val(4)*$volChg5:c=same|val(5)*$volChg6:c=same','amix=inputs=6:duration=longest'$volChg1
-6
are php variables containing the individual volume multipliers -0.5
for example should halve the volume of that individual channel while1.0
would leave it unaffected. How do I do this ? -
FFMPEG issue with concat video made from single image
12 mai 2023, par JacobI am pulling my hair out right now. I am developing a video editing program. When I export two videos, concat works great. However, when I create a video from a single image (title screen) and try to concat that video with a regular video, only the title screen is exported. And no errors.


Below is the code for creating the title screen :


parameters = "-loop 1 -i " + '"' + video.VideoThumbPath + '"' + " -c:v libx264 -t " + video.TitleDuration.ToString() + " -pix_fmt yuv420p " + vidPath + @"\v" + outputFile.ToString() + ".MP4";



Below is the code for exporting a regular non title screen video :


parameters = "-y -i " + '"' + frames[0].VideoPath + '"' + " -filter_complex " + '"' + @"[0:v]trim=" + frames[0].TimeCode.TotalSeconds + @":" + frames[1].TimeCode.TotalSeconds +
 @", setpts=PTS-STARTPTS[trimedv0];[trimedv0]yadif," + orientation + @"setsar=1/1, eq=contrast=1:brightness=" + video.Brightness + '"' + " -sn -an -c:v libx264 -preset ultrafast -profile:v baseline -level 3.0 " +
 @"-pix_fmt yuv420p -f mpegts " + vidPath + @"\v" + outputFile.ToString() + ".MP4";



Below is the code to concat both videos :


parameters = "-probesize 100M -analyzeduration 100M -i concat:" + '"' + concatString + '"' + @" -c:v copy " + '"' + ExportOptions.CompleteDestinationPath + '"';



Like I said, using this code for two MP4 video that were not made from a single image, it works great. If I create a MP4 from a single image with a duration of 5 seconds and concat it with a normal MP4, only the title screen is exported.


Below is the output from FFMPEG. It shows the concat string with 2 videos but only concats the first one.


09:59:32:366 ffmpeg version N-110043-gadb5f7b41f-20230318 Copyright (c) 2000-2023 the FFmpeg developers



09:59:32:366 built with gcc 12.2.0 (crosstool-NG 1.25.0.90_cf9beb1)
09:59:32:366 configuration : —prefix=/ffbuild/prefix —pkg-config-flags=—static —pkg-config=pkg-config —cross-prefix=x86_64-w64-mingw32- —arch=x86_64 —target-os=mingw32 —enable-gpl —enable-version3 —disable-debug —disable-w32threads —enable-pthreads —enable-iconv —enable-libxml2 —enable-zlib —enable-libfreetype —enable-libfribidi —enable-gmp —enable-lzma —enable-fontconfig —enable-libvorbis —enable-opencl —disable-libpulse —enable-libvmaf —disable-libxcb —disable-xlib —enable-amf —enable-libaom —enable-libaribb24 —enable-avisynth —enable-chromaprint —enable-libdav1d —enable-libdavs2 —disable-libfdk-aac —enable-ffnvcodec —enable-cuda-llvm —enable-frei0r —enable-libgme —enable-libkvazaar —enable-libass —enable-libbluray —enable-libjxl —enable-libmp3lame —enable-libopus —enable-librist —enable-libssh —enable-libtheora —enable-libvpx —enable-libwebp —enable-lv2 —disable-libmfx —enable-libvpl —enable-openal —enable-libopencore-amrnb —enable-libopencore-amrwb —enable-libopenh264 —enable-libopenjpeg —enable-libopenmpt —enable-librav1e —enable-librubberband —enable-schannel —enable-sdl2 —enable-libsoxr —enable-libsrt —enable-libsvtav1 —enable-libtwolame —enable-libuavs3d —disable-libdrm —disable-vaapi —enable-libvidstab —enable-vulkan —enable-libshaderc —enable-libplacebo —enable-libx264 —enable-libx265 —enable-libxavs2 —enable-libxvid —enable-libzimg —enable-libzvbi —extra-cflags=-DLIBTWOLAME_STATIC —extra-cxxflags= —extra-ldflags=-pthread —extra-ldexeflags= —extra-libs=-lgomp —extra-version=20230318
09:59:32:366 libavutil 58. 4.100 / 58. 4.100
09:59:32:366 libavcodec 60. 6.101 / 60. 6.101
09:59:32:366 libavformat 60. 4.100 / 60. 4.100
09:59:32:366 libavdevice 60. 2.100 / 60. 2.100
09:59:32:366 libavfilter 9. 4.100 / 9. 4.100
09:59:32:366 libswscale 7. 2.100 / 7. 2.100
09:59:32:366 libswresample 4. 11.100 / 4. 11.100
09:59:32:366 libpostproc 57. 2.100 / 57. 2.100
09:59:32:366 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'concat:C :\Users\JDINES\AppData\Roaming\FCS\VidBin\v1000.MP4|C :\Users\JDINES\AppData\Roaming\FCS\VidBin\v1001.MP4' :
09:59:32:366 Metadata :
09:59:32:366 major_brand : isom
09:59:32:366 minor_version : 512
09:59:32:366 compatible_brands : isomiso2avc1mp41
09:59:32:366 encoder : Lavf60.4.100
09:59:32:366 Duration : 00:00:05.00, start : 0.000000, bitrate : 64102 kb/s
09:59:32:366 Stream #0:00x1 : Video : h264 (High) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 18 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
09:59:32:366 Metadata :
09:59:32:366 handler_name : VideoHandler
09:59:32:366 vendor_id : [0][0][0][0]
09:59:32:366 encoder : Lavc60.6.101 libx264
09:59:32:366 Output #0, mp4, to 'C :\Users\JDINES\Desktop\EXPORT TEST\qwe.MP4' :
09:59:32:366 Metadata :
09:59:32:366 major_brand : isom
09:59:32:366 minor_version : 512
09:59:32:366 compatible_brands : isomiso2avc1mp41
09:59:32:366 encoder : Lavf60.4.100
09:59:32:366 Stream #0:0(und) : Video : h264 (High) (avc1 / 0x31637661), yuv420p(tv, unknown/bt709/iec61966-2-1, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 18 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
09:59:32:366 Metadata :
09:59:32:366 handler_name : VideoHandler
09:59:32:366 vendor_id : [0][0][0][0]
09:59:32:366 encoder : Lavc60.6.101 libx264
09:59:32:366 Stream mapping :
09:59:32:366 Stream #0:0 -> #0:0 (copy)
09:59:32:366 Press [q] to stop, [?] for help
09:59:32:366 frame= 0 fps=0.0 q=-1.0 size= 0kB time=-00:00:00.06 bitrate= -0.0kbits/s speed=N/A

frame= 150 fps=0.0 q=-1.0 Lsize= 14kB time=00:00:04.90 bitrate= 23.4kbits/s speed=2e+03x

09:59:32:366 video:11kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead : 23.005581%

Any help would be much appreciated !


I figured this out finally !!!


The below code fixed it :


parameters = "-loop 1 -i " + '"' + video.VideoThumbPath + '"' + " -sn -an -c:v libx264 -preset ultrafast -profile:v baseline -level 3.0 " +
 @"-t 5 -pix_fmt yuv420p -f mpegts " + vidPath + @"\v" + outputFile.ToString() + ".MP4";



-
ffmpeg exit code 429496724 when opening file with {} in name
16 février, par Holly WilsonI'm trying to write a program that will read the names of files in a directory, and parse them for info which it will then write into that file's metadata (seems pointless, I know, but it's more of a trial run for a larger project. If I can figure this out, then I'll be ready to move on to what I actually want to do).
All of my filenames are formatted :


Title, Article* - Subtitle* Cut* [Year]
*if present


The four test videos I'm using are titled :


Test Video 1 [2000]


Test Video 2, A [2000]


Test Video 3 Test Cut [2000]


Test Video 4 - The Testening [2000]


The code seems to be working fine on videos 1, 2, & 4 ; but video 3 is causing me a lot of headache.


//node C:\Users\User\Documents\Coding\Tools\testMDG.js
const fs = require('fs');
const path = require('path');
const ffmpeg = require('fluent-ffmpeg');
const async = require('async');
const directory = path.normalize('F:\\Movies & TV\\Movies\\testDir');
let x = 0;
const fileArray = [];
const succArray = [];
const failArray = [];
// Set the path to the ffmpeg executable
ffmpeg.setFfmpegPath(path.normalize('C:\\ffmpeg\\bin\\ffmpeg.exe'));

// Add this near the start of your script
const tempDir = path.join(directory, 'temp');
if (!fs.existsSync(tempDir)) {
 fs.mkdirSync(tempDir, { recursive: true });
}

const progresscsv = path.normalize('C:\\Users\\User\\Documents\\Coding\\Tools\\progress.csv');
if (fs.existsSync(progresscsv)) {
 fs.unlinkSync(progresscsv);
};

const csvStream = fs.createWriteStream(progresscsv);
csvStream.write('File Name,Status\n');

const CONCURRENCY_LIMIT = 3; // Adjust based on your system capabilities

// Add at the start of your script
const processedFiles = new Set();

function sanitizeFilePath(filePath) {
 return filePath.replace(/([{}])/g, '\\$1');
}

// Create a queue
const queue = async.queue(async (task, callback) => {
 const { file, filePath, tempFilePath, movieMetadata } = task;
 try {
 await new Promise((resolve, reject) => {
 console.log(`ffmpeg reading: ${sanitizeFilePath(filePath)}`);
 ffmpeg(sanitizeFilePath(filePath))
 .outputOptions([
 '-y',
 '-c', 'copy',
 '-map', '0',
 '-metadata', `title=${movieMetadata.title}`,
 '-metadata', `subtitle=${movieMetadata.subtitle || ''}`,
 '-metadata', `comment=${movieMetadata.cut || ''}`,
 '-metadata', `year=${movieMetadata.year}`
 ])
 .on('error', (err) => reject(err))
 .on('end', () => resolve())
 .saveToFile(tempFilePath);
 });
 
 // Handle success
 console.log(`Successfully processed: ${file}`);
 succArray.push(file);
 // Only call callback once
 if (callback && typeof callback === 'function') {
 callback();
 }
 } catch (err) {
 // Handle error
 console.error(`Error processing ${file}: ${err.message}`);
 failArray.push(file);
 // Only call callback once with error
 if (callback && typeof callback === 'function') {
 callback(err);
 }
 }
}, CONCURRENCY_LIMIT);

fs.readdir(directory, (err, files) => {
 if (err) {
 console.error(`Error reading directory: ${err.message}`);
 return;
 }
 console.log(directory);

 // Filter for files only
 files = files.filter(file => fs.statSync(path.join(directory, file)).isFile());
 console.log(files);

 for (const file of files) {
 x++;
 const filePath = path.join(directory, file);
 let desort = file.replace(/(.*),\s(the\s|an\s|a\s)/i, '$2'+'$1 ') || file;
 
 // Create task object for queue
 const task = {
 file,
 filePath: filePath,
 tempFilePath: path.join(directory, 'temp', `temp_${x}_${path.parse(file).name
 .replace(/[^a-zA-Z0-9]/g, '_')}${path.extname(file)}`),
 movieMetadata: {
 title: desort.replace(/(\s[\-\{\[].*)/gi, ``),
 subtitle: desort.includes('-') ? desort.replace(/(.*)\-\s(.*?)[\{\[].*/gi, '$2') : null,
 cut: desort.includes('{') ? desort.replace(/.*\{(.*)\}.*/gi, '$1') : null,
 year: desort.replace(/.*\[(.*)\].*/gi, '$1')
 }
 };
 
 // Add to processing queue
 queue.push(task, (err) => {
 if (!processedFiles.has(task.file)) {
 processedFiles.add(task.file);
 if (err) {
 csvStream.write(`${task.file},Failed\n`);
 } else {
 csvStream.write(`${task.file},Processed\n`);
 }
 }
 });
 }
});

// Add queue completion handler
queue.drain(() => {
 console.log('All files have been processed');
 console.log(`Success: ${succArray.length} files: ${succArray}`);
 console.log(`Failed: ${failArray.length} files: ${failArray}`);
});

//node C:\Users\User\Documents\Coding\Tools\testMDG.js



And the console is logging :


PS C:\Users\User> node C:\Users\User\Documents\Coding\Tools\testMDG.js
F:\Movies & TV\Movies\testDir
[
 'Test Video 1 [2020].mp4',
 'Test Video 2, A [2020].mp4',
 'Test Video 3 {Test Cut} [2020].mp4',
 'Test Video 4 - The Testening [2020].mp4'
]
ffmpeg reading: F:\Movies & TV\Movies\testDir\Test Video 1 [2020].mp4
ffmpeg reading: F:\Movies & TV\Movies\testDir\Test Video 2, A [2020].mp4
ffmpeg reading: F:\Movies & TV\Movies\testDir\Test Video 3 \{Test Cut\} [2020].mp4
Error processing Test Video 3 {Test Cut} [2020].mp4: ffmpeg exited with code 4294967294: Error opening input file F:\Movies & TV\Movies\testDir\Test Video 3 \{Test Cut\} [2020].mp4.
Error opening input files: No such file or directory

ffmpeg reading: F:\Movies & TV\Movies\testDir\Test Video 4 - The Testening [2020].mp4
Successfully processed: Test Video 1 [2020].mp4
Successfully processed: Test Video 2, A [2020].mp4
Successfully processed: Test Video 4 - The Testening [2020].mp4
All files have been processed
Success: 3 files: Test Video 1 [2020].mp4,Test Video 2, A [2020].mp4,Test Video 4 - The Testening [2020].mp4
Failed: 1 files: Test Video 3 {Test Cut} [2020].mp4



I've tried so many different solutions in the sanitizeFilePath function. Escaping the {} characters (as included below), escaping all non-alphanumeric characters, putting the filepath in quotes, etc. VSCode's CoPilot is just pulling me round in circles, suggesting solutions I've already tried.