
Recherche avancée
Autres articles (99)
-
Changer son thème graphique
22 février 2011, parLe thème graphique ne touche pas à la disposition à proprement dite des éléments dans la page. Il ne fait que modifier l’apparence des éléments.
Le placement peut être modifié effectivement, mais cette modification n’est que visuelle et non pas au niveau de la représentation sémantique de la page.
Modifier le thème graphique utilisé
Pour modifier le thème graphique utilisé, il est nécessaire que le plugin zen-garden soit activé sur le site.
Il suffit ensuite de se rendre dans l’espace de configuration du (...) -
Les sons
15 mai 2013, par -
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
Sur d’autres sites (16060)
-
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 !
-
Android Media player/framework species
4 septembre 2018, par sungyongI’m confused about species of media player/framework/library of Android and it’s role and positions.
Here is my understanding about Android media player and framework.
I don’t have confident what I understand, still be under the chaos.
From Android developer’s guide,
for application side : apk uses Application Framework which has two players - MediaPlayer, ExoPlayerfor Native framework side : it has also various players - Nu, awesome, etc.
There’re some query for gstreamer vs ffmpeg, ffmpeg vs vlc, or exoplayer vs vitamio. It makes me more confusing.
Would you clearify me to get the right concept for them ?
If my android custom device use ffmpeg, that means it doesn’t use standard Android media framework ?For stagefright engine, there is no alternative for this ?
-
Unable to decode media issue on chrome browser
20 octobre 2018, par Shrikant DI am experiencing an issue while playing media on my application. I am using html5 player which works fine on another browser but the media not worked on Google Chrome. Below is the ffmpeg output.
ffmpeg version 3.4.1 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.4.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
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, mov,mp4,m4a,3gp,3g2,mj2, from 'sources-5a6b388fb093f.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42mp41
creation_time : 2017-10-31T01:45:10.000000Z
Duration: 00:04:55.72, start: 0.000000, bitrate: 10300 kb/s
Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 9975 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 119.88 tbc (default)
Metadata:
creation_time : 2017-10-31T01:45:10.000000Z
handler_name : Alias Data Handler
encoder : AVC Coding
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
creation_time : 2017-10-31T01:45:10.000000Z
handler_name : Alias Data HandlerThe issue is replicable on Windows, Linux/Ubuntu and Mac on Google Chrome browser.
UPDATED :
render_id: 56
player_id: 0
origin_url: https://example.com/
frame_url: https://example.com/node/83810
frame_title:
url: https://example.com/sites/default/files/sources-5a6b388fb093f.mp4
total_bytes: 380754023
streaming: false
single_origin: true
passed_cors_access_check: false
range_header_supported: true
pipeline_state: kStopped
info: Selected FFmpegVideoDecoder for video decoding, config: codec: h264 format: 1 profile: h264 main coded size: [1920,1080] visible rect: [0,0,1920,1080] natural size: [1920,1080] has extra data? true encryption scheme: Unencrypted rotation: 0°
audio_channels_count: 2
audio_codec_name: aac
audio_sample_format: Float 32-bit planar
audio_samples_per_second: 48000
bitrate: 10300299
found_audio_stream: true
found_video_stream: true
height: 1080
max_duration: 295.722667
start_time: 0
time_base: 1/60000
video_codec_name: h264
video_format: PIXEL_FORMAT_I420
video_is_encrypted: false
width: 1920
audio_dds: false
audio_decoder: FFmpegAudioDecoder
video_dds: false
video_decoder: FFmpegVideoDecoder
audio_buffering_state: BUFFERING_HAVE_ENOUGH
video_buffering_state: BUFFERING_HAVE_ENOUGH
for_suspended_start: false
pipeline_buffering_state: BUFFERING_HAVE_ENOUGH
duration: 295.722667
event: PAUSE
error: video decode error
pipeline_error: PIPELINE_ERROR_DECODEAdded chrome Player Properties for specific media.