
Recherche avancée
Autres articles (30)
-
Les autorisations surchargées par les plugins
27 avril 2010, parMediaspip core
autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs -
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (2887)
-
Which directory should i put FFmpeg ? [duplicate]
25 juillet 2020, par Panda Gaming23I am making a discord bot and I get the following error


node:4) UnhandledPromiseRejectionWarning: Error: FFmpeg/avconv not found!

2020-07-25T01:00:13.991518+00:00 app[worker.1]: at Function.getInfo (/app/node_modules/prism-media/src/core/FFmpeg.js:130:11)

2020-07-25T01:00:13.991519+00:00 app[worker.1]: at Function.create (/app/node_modules/prism-media/src/core/FFmpeg.js:143:38)

2020-07-25T01:00:13.991519+00:00 app[worker.1]: at new FFmpeg (/app/node_modules/prism-media/src/core/FFmpeg.js:44:27)

2020-07-25T01:00:13.991520+00:00 app[worker.1]: at AudioPlayer.playUnknown (/app/node_modules/discord.js/src/client/voice/player/BasePlayer.js:47:20)

2020-07-25T01:00:13.991520+00:00 app[worker.1]: at VoiceConnection.play (/app/node_modules/discord.js/src/client/voice/util/PlayInterface.js:71:28)

2020-07-25T01:00:13.991522+00:00 app[worker.1]: at play (/app/commands/play.js:14:34)

2020-07-25T01:00:13.991522+00:00 app[worker.1]: at /app/commands/play.js:42:5

2020-07-25T01:00:13.991522+00:00 app[worker.1]: at processTicksAndRejections (internal/process/task_queues.js:97:5)

2020-07-25T01:00:13.991629+00:00 app[worker.1]: (node:4) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 6)




Here is the code


const ytdl = require("ytdl-core");
const Discord = require("discord.js");

var servers = {};

module.exports = {
 name: "play",
 description: "this is a music play command!",
 execute(message, args) {
 
 function play(connection, message) {
 var server = servers[message.guild.id];
 
 server.dispatcher = connection.play(ytdl(server.queue[0], {filter: "audioonly"}));
 
 server.queue.shift();
 
 server.dispatcher.on("end", function () {
 if(server.queue[0]){
 play(connection, message);
 }
 else {connection.disconnect();}
 })
 }
 if (!args[0]) {
 message.channel.send("you need to provide a link!");
 return;
 }

 if (!message.member.voice.channel) {
 message.channel.send("you must be in ||a|| voice channel to play the bot!");
 return;
 }

 if (!servers[message.guild.id]) servers[message.guild.id] = { queue: [] };
 
 var server = servers[message.guild.id];
 
 server.queue.push(args[0]);
 
 if (!message.member.voice.connection) message.member.voice.channel.join().then(function(connection) {
 play(connection, message);
 })
 },
};



I would like to know which directory I should put FFmpeg.


I would also like to know if the FFmpeg executable has to be in a folder or compressed or if i can just place the executable in a certain directory


I am hosting my bot using Heroku on a Mac using Discord.js V12


Please help.


Thanks !


-
FFMPEG incorrect duration from raw video stream
28 juillet 2020, par LMBI have the raw video data from a video stream (no audio) and the duration when I play the raw video in VLC is 67 seconds. When I convert the file to MP4 using FFMPEG the duration is 82.68 seconds.


Video is available here : https://www.filedropper.com/showdownload.php/67seconds
I am using FFMPEG/FFPROBE version git-2020-07-21-b5f1e05 on Windows.


Details of the raw video here :


ffprobe -i 67seconds.raw
ffprobe version git-2020-07-21-b5f1e05 Copyright (c) 2007-2020 the FFmpeg developers
 built with gcc 9.3.1 (GCC) 20200621
 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
 libavutil 56. 55.100 / 56. 55.100
 libavcodec 58. 97.100 / 58. 97.100
 libavformat 58. 49.100 / 58. 49.100
 libavdevice 58. 11.101 / 58. 11.101
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 libpostproc 55. 8.100 / 55. 8.100
Input #0, h264, from '67seconds.raw':
 Duration: N/A, bitrate: N/A
 Stream #0:0: Video: h264 (High), yuv420p(progressive), 640x360 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 1200k tbn, 50 tbc



The mp4 duration matches my ffprobe calculation against the raw file itself (2067/25 = 82.68 seconds) :


ffprobe -show_entries stream=r_frame_rate,nb_read_frames -select_streams v -count_frames -of compact=p=0:nk=1 -v 0 67seconds.raw
25/1|2067



What would explain this difference in durations between the raw playback and the FFMPEG interpretation and how do I encode to the same duration for this and other stream data ?


-
Creating a timelapse from a directory of jpgs
26 juillet 2020, par Casey DavisI'm using this code to create a timelapse from a directory of images. My directory has about 1600 jpgs in it that all start with the date in this format 2020-03-01-time.jpg, 2020-03-02-time-name.jpg, etc. Sorting alphabetically works just fine. It runs, but it seems to only get through a few hundred photos and makes a 3 second long mp4. I'm not sure what I'm doing wrong.


I'm not opposed to moving to python or anything else. Eventually I'll need to pass some parameters in here and I'll attempt to automate it and ftp the output to a webserver.


Here is the command :


ffmpeg -r 24 -pattern_type glob -i '*.jpg' -s hd1080 -vcodec libx264 timelapse.mp4



Here is the output :


ffmpeg version 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 the FFmpeg developers
 built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
 configuration: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
 libavutil 55. 78.100 / 55. 78.100
 libavcodec 57.107.100 / 57.107.100
 libavformat 57. 83.100 / 57. 83.100
 libavdevice 57. 10.100 / 57. 10.100
 libavfilter 6.107.100 / 6.107.100
 libavresample 3. 7. 0 / 3. 7. 0
 libswscale 4. 8.100 / 4. 8.100
 libswresample 2. 9.100 / 2. 9.100
 libpostproc 54. 7.100 / 54. 7.100
Input #0, image2, from '*.jpg':
 Duration: 00:01:06.32, start: 0.000000, bitrate: N/A
 Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'timelapse.mp4' already exists. Overwrite ? [y/N] y
Stream mapping:
 Stream #0:0 -> #0:0 (mjpeg (native) -> h264 (libx264))
Press [q] to stop, [?] for help
[libx264 @ 0x55a43cfb1d00] using SAR=1/1
[libx264 @ 0x55a43cfb1d00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
[libx264 @ 0x55a43cfb1d00] profile High, level 4.0
[libx264 @ 0x55a43cfb1d00] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - 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=12 lookahead_threads=2 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=20 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
Output #0, mp4, to 'timelapse.mp4':
 Metadata:
 encoder : Lavf57.83.100
 Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuvj420p(pc), 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 20 fps, 10240 tbn, 20 tbc
 Metadata:
 encoder : Lavc57.107.100 libx264
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
frame= 72 fps= 11 q=-1.0 Lsize= 10663kB time=00:00:03.45 bitrate=25318.0kbits/s speed=0.507x 
video:10661kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.015737%
[libx264 @ 0x55a43cfb1d00] frame I:5 Avg QP:23.69 size:223467
[libx264 @ 0x55a43cfb1d00] frame P:33 Avg QP:26.52 size:139314
[libx264 @ 0x55a43cfb1d00] frame B:34 Avg QP:28.49 size:152989
[libx264 @ 0x55a43cfb1d00] consecutive B-frames: 33.3% 8.3% 8.3% 50.0%
[libx264 @ 0x55a43cfb1d00] mb I I16..4: 2.2% 96.6% 1.2%
[libx264 @ 0x55a43cfb1d00] mb P I16..4: 2.1% 78.8% 1.5% P16..4: 9.4% 4.7% 2.6% 0.0% 0.0% skip: 0.8%
[libx264 @ 0x55a43cfb1d00] mb B I16..4: 1.1% 20.4% 2.3% B16..8: 27.6% 13.7% 5.3% direct:22.7% skip: 6.9% L0:33.5% L1:32.2% BI:34.3%
[libx264 @ 0x55a43cfb1d00] 8x8 transform intra:93.8% inter:86.5%
[libx264 @ 0x55a43cfb1d00] coded y,uvDC,uvAC intra: 91.5% 66.0% 17.4% inter: 77.7% 58.7% 2.2%
[libx264 @ 0x55a43cfb1d00] i16 v,h,dc,p: 13% 56% 3% 28%
[libx264 @ 0x55a43cfb1d00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15% 20% 39% 4% 3% 3% 4% 4% 8%
[libx264 @ 0x55a43cfb1d00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 28% 12% 5% 7% 7% 6% 7% 8%
[libx264 @ 0x55a43cfb1d00] i8c dc,h,v,p: 49% 29% 19% 3%
[libx264 @ 0x55a43cfb1d00] Weighted P-Frames: Y:30.3% UV:24.2%
[libx264 @ 0x55a43cfb1d00] ref P L0: 48.2% 17.7% 17.7% 13.3% 3.2%
[libx264 @ 0x55a43cfb1d00] ref B L0: 83.2% 14.2% 2.5%
[libx264 @ 0x55a43cfb1d00] ref B L1: 93.8% 6.2%
[libx264 @ 0x55a43cfb1d00] kb/s:24258.47