
Recherche avancée
Médias (91)
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Core Media Video
4 avril 2013, par
Mis à jour : Juin 2013
Langue : français
Type : Video
-
The pirate bay depuis la Belgique
1er avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
-
Exemple de boutons d’action pour une collection collaborative
27 février 2013, par
Mis à jour : Mars 2013
Langue : français
Type : Image
-
Exemple de boutons d’action pour une collection personnelle
27 février 2013, par
Mis à jour : Février 2013
Langue : English
Type : Image
Autres articles (29)
-
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 (...) -
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...) -
Ajouter notes et légendes aux images
7 février 2011, parPour pouvoir ajouter notes et légendes aux images, la première étape est d’installer le plugin "Légendes".
Une fois le plugin activé, vous pouvez le configurer dans l’espace de configuration afin de modifier les droits de création / modification et de suppression des notes. Par défaut seuls les administrateurs du site peuvent ajouter des notes aux images.
Modification lors de l’ajout d’un média
Lors de l’ajout d’un média de type "image" un nouveau bouton apparait au dessus de la prévisualisation (...)
Sur d’autres sites (9814)
-
How to seek mp4 aac audio using Media Source Extensions
29 août 2018, par ChrisPlease can someone offer me a few pointers when trying to seek within streamed aac audio in mp4 containers ? I’m trying to develop a music download service that sips data via ranged requests rather than simply link to a mp4 file as an
<audio></audio>
src. (which will instead buffer the whole file as quickly as possible, and so be rather wasteful and expensive).So far I’ve managed to successfully append sequential audio range buffers to the SourceBuffer object using partial/ranged requests, attached to my suitably mime-typed MediaSource object. But as soon as I try to seek, the wheels come off and I receive a ’CHUNK_DEMUXER_ERROR_APPEND_FAILED’ error, with the specific issue : ’stream parsing failed’.
I’ve prepared my mp4 files by encoding them with ffmpeg (via the fluent ffmpeg module), rewriting the movie header box at the start of the file (via the
-movflags faststart
setting) so that the duration can be parsed. I then fragment the file with mp4fragment (part of the Bento4 tools) with the default settings, and check to ensure the structure of the file matches the format specified by ISO BMFF, with pairs of movie fragments and data boxes (moof/mdat) describing the audio stream. Given the source buffer has no problem playing from the beginning, with contiguous subsequent ranges, this appears to confirm that the format of the mp4 file is acceptable.As an aside, I’ve tried fragmenting the file completely in ffmpeg/fluent ffmpeg (using the ’-movflags empty_moov+default_base_moof’ options), but while this works, it also removes the duration from the moov as you’d expect, so the file gets larger during playback as more fragments are fetched and appended. If I set the file duration manually, I still have the issue of not being able to seek to unbuffered audio, so I only seem to be making life more difficult trying to fragment the file solely in ffmpeg.
So how should I go about seeking within the stream ? I gather that seeking effectively ’needle-drops’ randomly, and so the source buffer might struggle to parse the data out of context, but I imagined that it would skip to the next available fragment in the range that I fetch (which is calculated using the percentage of the seek bar width to set the player.currentTime, which is then converted to a suitable byte range using the 128kbps CBR figure to convert seconds to bytes, to send a 206 partial range request).
I’ve seen mention of buffer offsets, but I don’t understand how these apply. Most of the dev examples I’ve seen just focus on whole files or segmented videos, rather than fragmented single audio files for seeking ? Do I need to somehow retain a portion of the data from the moov box when seeking for the source buffer to be able to parse it ? In the trun box I have a
data offset
that varies between two values throughout the file, 444 and 448, depending on whether the sample count is 86 or 87. I’m not sure why it’s not consistent.Here’s what the moov looks like from my audio file :
[ftyp] size=8+24
major_brand = isom
minor_version = 200
compatible_brand = isom
compatible_brand = iso2
compatible_brand = mp41
compatible_brand = iso5
[moov] size=8+620
[mvhd] size=12+96
timescale = 1000
duration = 350047
duration(ms) = 350047
[trak] size=8+448
[tkhd] size=12+80, flags=7
enabled = 1
id = 1
duration = 350047
width = 0.000000
height = 0.000000
[edts] size=8+28
[elst] size=12+16
entry count = 1
entry/segment duration = 350000
entry/media time = 2048
entry/media rate = 1
[mdia] size=8+312
[mdhd] size=12+20
timescale = 44100
duration = 0
duration(ms) = 0
language = und
[hdlr] size=12+41
handler_type = soun
handler_name = Bento4 Sound Handler
[minf] size=8+219
[smhd] size=12+4
balance = 0
[dinf] size=8+28
[dref] size=12+16
[url ] size=12+0, flags=1
location = [local to file]
[stbl] size=8+159
[stsd] size=12+79
entry-count = 1
[mp4a] size=8+67
data_reference_index = 1
channel_count = 2
sample_size = 16
sample_rate = 44100
[esds] size=12+27
[ESDescriptor] size=2+25
es_id = 0
stream_priority = 0
[DecoderConfig] size=2+17
stream_type = 5
object_type = 64
up_stream = 0
buffer_size = 0
max_bitrate = 128006
avg_bitrate = 128006
DecoderSpecificInfo = 12 10
[Descriptor:06] size=2+1
[stts] size=12+4
entry_count = 0
[stsc] size=12+4
entry_count = 0
[stsz] size=12+8
sample_size = 0
sample_count = 0
[stco] size=12+4
entry_count = 0
[mvex] size=8+48
[mehd] size=12+4
duration = 350047
[trex] size=12+20
track id = 1
default sample description index = 1
default sample duration = 0
default sample size = 0
default sample flags = 0And here’s a typical fragment :
[moof] size=8+428
[mfhd] size=12+4
sequence number = 1
[traf] size=8+404
[tfhd] size=12+8, flags=20008
track ID = 1
default sample duration = 1024
[tfdt] size=12+8, version=1
base media decode time = 0
[trun] size=12+352, flags=201
sample count = 86
data offset = 444
[mdat] size=8+32653Does that all look good ? Any pointers for seeking within such a file would be hugely appreciated. Thanks !
-
YTDL-Core MP4 to MP3 doesn't work with FFMPEG (Code 101)
14 septembre 2018, par doamattoIn a simple YouTube downloader, I keep trying to get an MP4 to convert to an MP3 using FFMPEG/Fluent-FFMPEG (Fluent was used as recommened by the ytdl-core examples). However, both times resolve in one of two errors :
Cannot find ffmpeg
orcode: 101, msg: "The input file path must be a string"
I have updated the source to all be on GitHub (sorry for that slight inconvenience as opposed to it being here. It’s linked below. However, I have tried two things : using the normal "node-ffmpeg" library as the require for "ffmpeg", and using the "fluent-ffmpeg" library as the require for "ffmpeg." I mainly did this because via the ytdl-core uses such and I figured it may work in that case.
Thanks in advance and thanks as a whole !
The GitHub Repo : https://gist.github.com/Incrested/d9ef8125bd41afbb7e6720ec3a78e331
Once again : thanks for any and all assistance !
Edit : I’ve changed the URL to a better snippet of focus of where I think the issue is.
-
ffmpeg concatenation with -filter_complex
16 octobre 2018, par IgniterI’ve seen several similar questions but none of them actually helped in my case.
Getting this error while trying to join 1 audio and 4 video files of different nature and resolutions.ffmpeg -i 0.mp3 -i 1.mp4 -i 2.mkv -i 3.mkv -i 4.webm \
-filter_complex [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] \
-map "[outv]" -map "[outa]" output.mp4All this gives the following error :
Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.
Straight concatenation
-i "concat:0.mp3|1.mp4..."
also doesn’t work as expected due to different resolutions and video formats. All methods syntax was taken from official documentation but there should be something that I’ve missed here.Full output log :
ffmpeg version 3.4.4-0ubuntu0.18.04.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --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, mp3, from 'mp3/10.mp3':
Metadata:
album_artist : artist
title : title
artist : 10
album : 12
track : 1
VideoKind : 2
date : 2009
Duration: 00:06:00.44, start: 0.025056, bitrate: 64 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 64 kb/s
Metadata:
encoder : LAME3.98r
Stream #0:1: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 200x200 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
Metadata:
comment : Cover (front)
Input #1, matroska,webm, from '1.mp4':
Metadata:
MINOR_VERSION : 0
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
ENCODER : Lavf57.83.100
Duration: 00:01:53.05, start: 0.007000, bitrate: 2292 kb/s
Stream #1:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:01:53.048000000
Input #2, matroska,webm, from '2.mkv':
Metadata:
MINOR_VERSION : 0
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
ENCODER : Lavf57.83.100
Duration: 00:02:08.09, start: 0.007000, bitrate: 1607 kb/s
Stream #2:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:02:08.090000000
Input #3, matroska,webm, from '3.mkv':
Metadata:
MINOR_VERSION : 0
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
ENCODER : Lavf57.83.100
Duration: 00:01:37.05, start: 0.007000, bitrate: 3525 kb/s
Stream #3:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:01:37.048000000
Input #4, matroska,webm, from '4.webm':
Metadata:
MINOR_VERSION : 0
COMPATIBLE_BRANDS: iso6avc1mp41
MAJOR_BRAND : dash
ENCODER : Lavf57.83.100
Duration: 00:01:45.13, start: 0.007000, bitrate: 3685 kb/s
Stream #4:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 24 fps, 24 tbr, 1k tbn, 48 tbc (default)
Metadata:
HANDLER_NAME : VideoHandler
DURATION : 00:01:45.131000000
Stream specifier ':a:0' in filtergraph description [0:a:0][1:v:0][2:v:0][3:v:0][4:v:0]concat=n=5:v=1:a=1[outv][outa] matches no streams.