
Recherche avancée
Autres articles (11)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...) -
Librairies et logiciels spécifiques aux médias
10 décembre 2010, parPour un fonctionnement correct et optimal, plusieurs choses sont à prendre en considération.
Il est important, après avoir installé apache2, mysql et php5, d’installer d’autres logiciels nécessaires dont les installations sont décrites dans les liens afférants. Un ensemble de librairies multimedias (x264, libtheora, libvpx) utilisées pour l’encodage et le décodage des vidéos et sons afin de supporter le plus grand nombre de fichiers possibles. Cf. : ce tutoriel ; FFMpeg avec le maximum de décodeurs et (...)
Sur d’autres sites (5731)
-
If you rotate the iPhone's video with ffmpeg, the rotation information sticks. Can I hide this ?
24 août 2017, par howmanylifeThe following implementation is a command to rotate the movie by 90 degrees.
ffmpeg -i video.mp4 -vf transpose=1 -metadata:s:v:0 rotate=0 videoo.mp4
-vf transpose=1The iPhone’s video contains rotation information and actually
ffprobe -show_streams -print_format json videoo.mp4 2>/dev/null
To output motion picture information or rotation information as described below.
"tags": {
"rotate": "90",
"creation_time": "2017-08-24T01:49:38.000000Z",
"language": "und",
"handler_name": "Core Media Data Handler",
"encoder": "'avc1'"
},
"side_data_list": [
{
"side_data_type": "Display Matrix",
"displaymatrix": "\n00000000: 0 65536 0\n00000001: -65536 0 0\n00000002: 0 0 1073741824\n",
"rotation": -90
}
]
"rotate": "90",and
"side_data_list":
and
"rotation": -90
Is it possible to hide this ? Or is it possible to erase only this rotation information ?
-
FFMPEG : Incompatible pixel format 'rgb24' for codec 'gif', auto-selecting format 'rgb8'
30 avril 2020, par Alexander KorzhykovI use ffmpeg to record xvfb desktop with 24 bit color depth and save it in gif format (and then I pipe it to AWS so you can replace the ' - ' symbol with a filename.gif in the end of the command, it doesn't affect this issue) :



ffmpeg -f x11grab -video_size 800x600 -r 30 -i :99.0 -f gif -pix_fmt rgb24 -t 5 -




However, I always get the warning :





Incompatible pixel format 'rgb24' for codec 'gif', auto-selecting
 format 'rgb8'





Which leads to incorrect color reproduction. I tried it both on Windows and Ubuntu Docker container, both pre-compiled and from source, from repository with last commits, but no luck. Also I've seen in the other people's logs that they use --pix_fmt rgb24 or bgr24 and it works just fine.



So the question is : is there anything I need to install or configure in order to use rgb24 with gif encoder ? Or maybe there is a workaround like converting it to another format first ?



Here is the part of my output :



ffmpeg version git-2017-08-18-f386dd7 Copyright (c) 2000-2017 the FFmpeg developers
 built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
 configuration: --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libxcb
 libavutil 55. 74.100 / 55. 74.100
 libavcodec 57.102.100 / 57.102.100
 libavformat 57. 76.100 / 57. 76.100
 libavdevice 57. 7.100 / 57. 7.100
 libavfilter 6. 99.100 / 6. 99.100
 libswscale 4. 7.102 / 4. 7.102
 libswresample 2. 8.100 / 2. 8.100
 libpostproc 54. 6.100 / 54. 6.100


Input #0, x11grab, from ':99.0':
 Duration: N/A, start: 1503077459.413864, bitrate: N/A
 Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1024x768, 30 fps, 1000k tbr, 1000k tbn, 1000k tbc
Stream mapping:
 Stream #0:0 -> #0:0 (rawvideo (native) -> gif (native))
Press [q] to stop, [?] for help
Incompatible pixel format 'bgr24' for codec 'gif', auto-selecting format 'rgb8'


Output #0, gif, to 'pipe:':
 Metadata:
 encoder : Lavf57.76.100
 Stream #0:0: Video: gif, rgb8, 1024x768, q=2-31, 200 kb/s, 30 fps, 100 tbn, 30 tbc
 Metadata:
 encoder : Lavc57.102.100 gif




PS : the only workaround I've found is to split input video into jpegs and pipe them to ImageMagick which then concatenates jpegs to gif. This is extremely slow process and increases render time x20 times.


-
ENOENT Error in Node When Calling Ffmpeg binary from Fluent-Ffmpeg Api
7 novembre 2018, par PeterBackground
I am wiring up a firebase function in node. Purpose is to parse an inbound audio clip to a set length. Using ffmpeg and fluent-ffmpeg.
Problem
When the function is triggered in firebase, I am getting ENOENT error when Fluent-Ffmpeg attempts to access the Ffmpeg binary
Firebase Debug Output
Error : Error : spawn
./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg ENOENT
at exports._errnoException (util.js:1018:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickDomainCallback (internal/process/next_tick.js:128:9) code : ’ENOENT’, errno :
’ENOENT’, syscall : ’spawn
./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg’, path :
’./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg’,
spawnargs : [ ’-formats’ ]Expected Outcome
Inbound file is downloaded to a temp directory, cropped, and re-uploaded to firebase storage as the cropped file.
Environment
- mac client / firebase storage
- node v8.1.0
- ffmpeg v3.2.2
- fluent-ffmpeg v2.1.2
Code [Updated To Reflect Svenskunganka’s Change. Now Works]
const ffmpeg = require('fluent-ffmpeg');
const PREVIEW_PREFIX = 'preview_';
exports.generatePreviewClip = functions.storage.object('audioFiles').onChange(event => {
//console.log('Times this function has run: ', run++);
const object = event.data; // The Storage object.
const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name; // File path in the bucket.
const contentType = object.contentType; // File content type.
const resourceState = object.resourceState; // The resourceState is 'exists' or 'not_exists' (for file/folder deletions).
const metageneration = object.metageneration; // Number of times metadata has been generated. New objects have a value of 1.
// Exit if this is triggered on a file that is not an audio file.
if (!contentType.startsWith('audio/')) {
console.log('This is not an audio file.');
console.log('This is the file:', filePath);
return;
}
// Get the file name.
const fileName = path.basename(filePath);
console.log('Working with filename', fileName);
// Exit if the file is already an audio clip.
if (fileName.startsWith(PREVIEW_PREFIX)) {
console.log('Already a preview clip.');
return;
}
// Exit if this is a move or deletion event.
if (event.data.resourceState === 'not_exists') {
console.log('This is a deletion event.');
return;
}
// Exit if file exists but is not new and is only being triggered
// because of a metadata change.
if (resourceState === 'exists' && metageneration > 1) {
console.log('This is a metadata change event.');
return;
}
// Download file from bucket.
const bucket = gcs.bucket(fileBucket);
const tempFilePath = path.join(os.tmpdir(), fileName);
return bucket.file(filePath).download({
destination: tempFilePath
}).then(() => {
console.log('Audio file downloaded locally to temp directory', tempFilePath);
var ffmpegPath = require("ffmpeg-binaries").ffmpegPath();
var ffprobePath = require("ffmpeg-binaries").ffprobePath();
// Generate a croped file using ffmpeg.
var command = new ffmpeg(tempFilePath);
command.setFfmpegPath(ffmpegPath);
command.setFfprobePath(ffprobePath);
command
.setStartTime('00:00:03')
.setDuration('10')
.output(tempFilePath)
.on('end', function() {
console.log('Audio Crop Done Successfully');
})
.on('error', function(err)
{
console.log('Error:', err);
}).run();
}).then(() => {
console.log('Preview file created at', tempFilePath);
// We add a 'preview_' prefix to the audio file name. that's how it will appear in firebase.
const previewFileName = PREVIEW_PREFIX + fileName;
console.log('previewFileName is', previewFileName)
const previewFilePath = path.join(path.dirname(filePath), previewFileName);
console.log('previewFilePath is', previewFilePath);
// Uploading the preview file.
return bucket.upload(tempFilePath, {destination: previewFilePath});
// Once the file has been uploaded delete the local file to free up disk space.
}).then(() => fs.unlinkSync(tempFilePath));
// [END audio file generation]
});Contents and Structure of my ffmpeg-binaries/bin Directory
-rwxrwxrwx 1 sherpa staff 24M Dec 10 2016 ffmpeg
-rwxr--r-- 1 sherpa staff 35M Jan 12 2017 ffmpeg.exe
-rwxr--r-- 1 sherpa staff 35M Jan 12 2017 ffplay.exe
-rwxrwxrwx 1 sherpa staff 24M Dec 10 2016 ffprobe
-rwxr--r-- 1 sherpa staff 35M Jan 12 2017 ffprobe.exe
-rwxrwxrwx 1 sherpa staff 22M Dec 10 2016 ffserverThings I Have Tried
- I can execute ffmpeg from the command line
- sudo chmod -R u+x ffmpeg-binaries/
- ffmpeg set in global path
- used ffmpeg.exe binary in setFfmpegPath, got same result
- Error : Error : spawn ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg.exe ENOENT
- played with numerous different setFfmpegPath path structures, e.g :
- ./Cloud/functions/node_modules/ffmpeg-binaries/bin/ffmpeg
- node_modules/ffmpeg-binaries/bin/ffmpeg
- ./Cloud/functions/node_modules/ffmpeg-binaries/bin/
Thanks for any suggestions.