
Recherche avancée
Autres articles (41)
-
Les statuts des instances de mutualisation
13 mars 2010, parPour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...) -
L’espace de configuration de MediaSPIP
29 novembre 2010, parL’espace de configuration de MediaSPIP est réservé aux administrateurs. Un lien de menu "administrer" est généralement affiché en haut de la page [1].
Il permet de configurer finement votre site.
La navigation de cet espace de configuration est divisé en trois parties : la configuration générale du site qui permet notamment de modifier : les informations principales concernant le site (...) -
Selection of projects using MediaSPIP
2 mai 2011, parThe examples below are representative elements of MediaSPIP specific uses for specific projects.
MediaSPIP farm @ Infini
The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)
Sur d’autres sites (6367)
-
ffmpeg concat doesn't keep video speed/framerate ?
28 août 2016, par NickI have a bunch of small webm clips in directory vidchunks. These clips were generated using javascript MediaRecorder API.
MediaRecorder code :
var mRecorder;
var chunks = [];
navigator.mediaDevices.getUserMedia({
audio: false,
video: {
width: 1280,
height: 760,
mozMediaSource: "screen",
mediaSource: "screen"
}
}).then(function(stream) {
mRecorder = new MediaRecorder(stream,{mimeType:"video/webm"});
mRecorder.ondataavailable = function(event) {
var blob = event.data;
chunks.push(blob);
var vidchunk = new Blob(chunks);
// save to directory vid chunk.
};
mRecorder.start(5000);
}).catch(function(error) {
console.log(error.message);
});Then, once I have a bunch of these 5 second clips, I merge them :
ffmpeg -safe 0 \
-f concat -i <(for f in `ls vidchunks/* | sort -V`; do echo file $f; done) \
-c:v copy -r 30 -vsync drop test.webmWhen I play back these chunks individually, they play correctly. All 5 seconds of video are rendered smoothly.
However, once I merge, some 5 second chunks are condensed to like 1 second. So the total video, which should be 50 seconds for 10 chunks, turns out to be like 38 seconds because three of the chunks got condensed to 1 second.
Any ideas on how to fix this ?
EDIT : I’ve tried :
- without "-r 30 -vsync drop"
- without "-c:v copy"
No changes...
EDIT2 (some ffprobe outputs) :
ffprobe 1472343170-1.webm
ffprobe version 2.8.6-1ubuntu2 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --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-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --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-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, matroska,webm, from '1472343170-1.webm':
Metadata:
encoder : Chrome
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760, SAR 1:1 DAR 32:19, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)ffprobe 1472343245-16.webm
ffprobe version 2.8.6-1ubuntu2 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --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-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --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-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, matroska,webm, from '1472343245-16.webm':
Metadata:
encoder : Chrome
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760, SAR 1:1 DAR 32:19, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)ffprobe 1472343350-37.webm
ffprobe version 2.8.6-1ubuntu2 Copyright (c) 2007-2016 the FFmpeg developers
built with gcc 5.3.1 (Ubuntu 5.3.1-11ubuntu1) 20160311
configuration: --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --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-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --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-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
libavutil 54. 31.100 / 54. 31.100
libavcodec 56. 60.100 / 56. 60.100
libavformat 56. 40.101 / 56. 40.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 40.101 / 5. 40.101
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.101 / 1. 2.101
libpostproc 53. 3.100 / 53. 3.100
Input #0, matroska,webm, from '1472343350-37.webm':
Metadata:
encoder : Chrome
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760, SAR 1:1 DAR 32:19, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)I also noticed that the merged video plays normal when the mouse is moving around on the screen, but when the mouse is not moving, it moves 5x faster.
I know this because I have a timer on the screen that I’m recording, and I can see that the timer speeds up significantly when mouse isn’t moving but when mouse is moving, the timer moves at normal speed.
EDIT3 :
The DTS/PTS looks like resets after each file is merged :DTS -9223363446915256, next:6866667 st:0 invalid dropping
PTS -9223363446915256, next:6866667 invalid dropping st:0
DTS -9223363446915222, next:6900000 st:0 invalid dropping
PTS -9223363446915222, next:6900000 invalid dropping st:0
DTS -9223363446915188, next:6933333 st:0 invalid dropping
PTS -9223363446915188, next:6933333 invalid dropping st:0
[concat @ 0x1cde3e0] DTS -9223363446920184 < 5006 out of order
DTS -9223363446920184, next:5033333 st:0 invalid dropping
PTS -9223363446920184, next:5033333 invalid dropping st:0
DTS -9223363446920056, next:5066667 st:0 invalid dropping
PTS -9223363446920056, next:5066667 invalid dropping st:0
DTS -9223363446919956, next:5100000 st:0 invalid dropping
PTS -9223363446919956, next:5100000 invalid dropping st:0EDIT4 : Tried ffmpeg -i "$f" -y -c copy -fflags +genpts "$f" and then merge again.
Works a lot better, but now other files are getting skipped.
Here’s ffprobe from a file that’s skipped :
Metadata:
encoder : Lavf56.40.101
Duration: 00:00:01.17, start: 0.000000, bitrate: 428 kb/s
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760, SAR 1:1 DAR 32:19, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
[webm @ 0x1c01940] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, webm, to '1472343225-12.webm':
Metadata:
encoder : Lavf56.40.101
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760 [SAR 1:1 DAR 32:19], q=2-31, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Stream mapping:
Stream #0:0 -> #0:0 (copy)Here’s ffprobe from a file not skipped :
Input #0, matroska,webm, from '1472343215-10.webm':
Metadata:
encoder : Lavf56.40.101
Duration: 00:00:05.03, start: 0.000000, bitrate: 80 kb/s
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760, SAR 1:1 DAR 32:19, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
[webm @ 0x1349940] Codec for stream 0 does not use global headers but container format requires global headers
Output #0, webm, to '1472343215-10.webm':
Metadata:
encoder : Lavf56.40.101
Stream #0:0(eng): Video: vp8, yuv420p, 1280x760 [SAR 1:1 DAR 32:19], q=2-31, 30 fps, 30 tbr, 1k tbn, 1k tbc (default)
Stream mapping:
Stream #0:0 -> #0:0 (copy) -
rtmp : Allocate the prev_pkt arrays dynamically
11 octobre 2013, par Martin Storsjörtmp : Allocate the prev_pkt arrays dynamically
Normally, all channel ids are between 0 and 10, while they in
uncommon cases can have values up to 64k.This avoids allocating two arrays for up to 64k entries (at a total
of over 6 MB in size) each when most of them aren’t used at all.Signed-off-by : Martin Storsjö <martin@martin.st>
-
rtmp : Allocate the prev_pkt arrays dynamically
11 octobre 2013, par Martin Storsjörtmp : Allocate the prev_pkt arrays dynamically
Normally, all channel ids are between 0 and 10, while they in
uncommon cases can have values up to 64k.This avoids allocating two arrays for up to 64k entries (at a total
of over 6 MB in size) each when most of them aren’t used at all.Signed-off-by : Martin Storsjö <martin@martin.st>