
Recherche avancée
Médias (91)
-
Spoon - Revenge !
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
My Morning Jacket - One Big Holiday
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Zap Mama - Wadidyusay ?
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
David Byrne - My Fair Lady
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Beastie Boys - Now Get Busy
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Granite de l’Aber Ildut
9 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
Autres articles (74)
-
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 (...) -
Submit enhancements and plugins
13 avril 2011If you have developed a new extension to add one or more useful features to MediaSPIP, let us know and its integration into the core MedisSPIP functionality will be considered.
You can use the development discussion list to request for help with creating a plugin. As MediaSPIP is based on SPIP - or you can use the SPIP discussion list SPIP-Zone. -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
Sur d’autres sites (7309)
-
How to check when ffmpeg completes a task ?
25 mai 2018, par AndrewI’m just learning how to use ffmpeg a few hours ago to generate video thumbnails.
These are some results :
I’d used the same size (width - height) to Youtube’s. Each image contains max 25 thumbnails (5x5) with the size 160x90.
Everything looks good until :
public async Task GetVideoThumbnailsAsync(string videoPath, string videoId)
{
byte thumbnailWidth = 160;
byte thumbnailHeight = 90;
string fps = "1/2";
videoPath = Path.Combine(_environment.WebRootPath, videoPath);
string videoThumbnailsPath = Path.Combine(_environment.WebRootPath, $"assets/images/video_thumbnails/{videoId}");
string outputImagePath = Path.Combine(videoThumbnailsPath, "item_%d.jpg");
Directory.CreateDirectory(videoThumbnailsPath);
using (var ffmpeg = new Process())
{
ffmpeg.StartInfo.Arguments = $" -i {videoPath} -vf fps={fps} -s {thumbnailWidth}x{thumbnailHeight} {outputImagePath}";
ffmpeg.StartInfo.FileName = Path.Combine(_environment.ContentRootPath, "FFmpeg/ffmpeg.exe");
ffmpeg.Start();
}
await Task.Delay(3000);
await GenerateThumbnailsAsync(videoThumbnailsPath, videoId);
}I’m getting a trouble with the line :
await Task.Delay(3000);
When I learn the way to use ffmpeg, they didn’t mention about it. After some hours failed, I notice that :
An mp4 video (1 min 31 sec - 1.93Mb) requires some delay time 1000ms. And other, an mp4 video (1 min 49 sec - 7.25Mb) requires some delay time 3000ms.
If I don’t use
Task.Delay
and try to get all the files immediately, it would return 0 (there was no file in the directory).Plus, each file which has a difference length to the others requires a difference delay time. I don’t know how to calculate it.
And my question is : How to check when the task has completed ?
P/s : I don’t mean to relate to javascript, but in js, there is something called
Promise
:var promise = new Promise(function (done) {
var todo = function () {
done();
};
todo();
});
promise.then(function () {
console.log('DONE...');
});I want to edit the code like that.
Thank you !
-
Transcode each stream in a different thread with ffmpeg
30 mai 2018, par hedgar2017Is there a way of forcing ffmpeg to encode each audio stream in a different thread ?
ffmpeg
-i audio1.ac3 -c:a libopus
-i audio2.ac3 -c:a libopus
-i audio3.ac3 -c:a libopus
output.mkvI mean only ffmpeg’s own instruments, without multiple processes and other OS features.
Normally, there is only one core saturated, so encoding a file with many audio streams is very long.
Exact command :
ffmpeg -loglevel verbose
-i 'Ярость (Fury).mkv'
-i 'Fury (2014) [Ukr & Eng, Sub Eng] BDRip-AVC [Hurtom & HELLYWOOD].mkv'
-threads 0 -max_muxing_queue_size 65536 -avoid_negative_ts 1 -metadata title=2014.Fury.BDRip.HEVC.1080p
-map 0:0 -c:v copy -metadata:s:v:0 title=2014.Fury.BDRip.HEVC.1080p -disposition:v:0 +defaug-[forced
-map 0:2 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:0 language=eng -metadata:s:a:0 title=Original -disposition:a:0 +defaug-[forced
-map 1:1 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:1 language=ukr -disposition:a:1 -default-forced
-map 0:1 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:2 language=rus -metadata:s:a:2 title=Dub -disposition:a:2 -default-forced
-map 0:10 -c:s copy -metadata:s:s:0 language=eng -metadata:s:s:0 title=Original -disposition:s:0 -default-forced
-f matroska ./2014.Fury.BDRip.HEVC.1080p.mkvLog :
... inputs ...
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:2 -> #0:1 (dts (dca) -> opus (libopus))
Stream #1:1 -> #0:2 (ac3 (native) -> opus (libopus))
Stream #0:1 -> #0:3 (ac3 (native) -> opus (libopus))
Stream #0:10 -> #0:4 (copy)
Press [q] to stop, [?] for help
[graph_2_in_0_1 @ 0000019ca2cb29c0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_3 @ 0000019ca2cb20c0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_3'
[auto_resampler_0 @ 0000019ca2cb27c0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
[libopus @ 0000019ca2c9f3c0] No bit rate set. Defaulting to 384000 bps.
[graph_0_in_0_2 @ 0000019ca2cb1ac0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_1 @ 0000019ca2cb1bc0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_1'
[auto_resampler_0 @ 0000019ca2cb14c0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
[libopus @ 0000019ca292c980] No bit rate set. Defaulting to 384000 bps.
[graph_1_in_1_1 @ 0000019ca2cb2bc0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_2 @ 0000019ca2cb26c0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_2'
[auto_resampler_0 @ 0000019ca2cb0dc0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
[libopus @ 0000019ca292e980] No bit rate set. Defaulting to 384000 bps.
Output #0, matroska, to './2014.Fury.BDRip.HEVC.1080p.mkv':
Metadata:
DATE_RELEASED : 2014
title : 2014.Fury.BDRip.HEVC.1080p
Released by : Buba5473 for NNM-Club
Copyright : Encoded by Goor80
encoder : Lavf58.12.100
Chapter #0:0: start 0.000000, end 478.228000
Metadata:
title : Chapter 01
... chapters ...
Stream #0:0: Video: hevc (Main 10), 1 reference frame, yuv420p10le(tv), 1920x800 (0x0) [SAR 1:1 DAR 12:5], q=2-31, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
Stream #0:1(eng): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s (default)
Stream #0:2(ukr): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s
Stream #0:3(rus): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s
Stream #0:4(eng): Subtitle: subrip
[matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=6175.5kbits/s speed=10.2x
[matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=7530.8kbits/s speed=8.74x
[matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=7955.1kbits/s speed=9.02x
frame=156607 fps=205 q=-1.0 size= 8321971kB time=01:48:51.85 bitrate=10437.1kbits/s speed=8.55x
... not finished yet ...fps is always around 3000/number_of_audio_channels, meaning all audio transcoding is done with the only thread.
-
ffmpeg install within existing Node.js docker image
1er septembre 2021, par PezaI need to use ffmpeg in a Node.js application that runs in a docker container (created using docker-compose). I'm very new to Docker, and would like to know how to command Docker to install ffmpeg when creating the image.



DockerFile



FROM node:carbon
WORKDIR /usr/src/app

# where available (npm@5+)
COPY package*.json ./
RUN npm install -g nodemon
RUN npm install --only=production
COPY . .

EXPOSE 3000
CMD [ "npm", "start" ] 




package.json :



{
 "name": "radcast-apis",
 "version": "0.0.1",
 "private": true,
 "scripts": {
 "start": "node ./bin/www",
 "dev": "nodemon --inspect-brk=0.0.0.0:5858 ./bin/www"
 },
 "dependencies": {
 "audioconcat": "^0.1.3",
 "cookie-parser": "~1.4.3",
 "debug": "~2.6.9",
 "express": "~4.16.0",
 "firebase-admin": "^5.12.1",
 "http-errors": "~1.6.2",
 "jade": "~1.11.0",
 "morgan": "~1.9.0"
 },
 "devDependencies": {
 "nodemon": "^1.11.0"
 }
}




docker-compose.yml :



version: "2"
services:
 web:
 volumes:
 - "./app:/src/app"
 build: .
 command: npm run dev
 ports:
 - "3000:3000"
 - "5858:5858"