
Recherche avancée
Médias (1)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (48)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
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 (...)
Sur d’autres sites (9583)
-
Streaming low latency video
26 août 2018, par user4893295Goal is to get low latency HD video over the LAN from a USB camera on a ARM device (a10 Lime running Armbian Jessie) to OBS Studio.
Thinking first step is to at least get it viewable on VLC on another device. So, to that end, I have tried gstreamer (no joy), ffmpeg (same) and VLC. Best luck with VLC so far, but the picture is mostly blank with occasional spots of picture.
This is the command I’m using :
cvlc v4l2:///dev/video0:chroma=h264:width=1920:height=1080 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:8080/stream,name=stream,mime=video/ts}' -vvv
It moans a bit at first with
[00b4a178] core interface error: no suitable interface module
[00ab18f8] core libvlc error: interface "globalhotkeys,none" initialization failed
[00b4a178] core interface debug: looking for interface module matching "dbus,none": 18 candidates
[00b4a178] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[00b4a178] core interface debug: no interface modules matched
[00b4a178] core interface error: no suitable interface module
[00ab18f8] core libvlc error: interface "dbus,none" initialization failedBut then seems to get a bit happier
[b4316038] core demux meta debug: no meta reader modules matched
[b4300508] core input debug: `v4l2:///dev/video0:chroma=h264:width=1920:height=1080' successfully opened
[b4300508] core input debug: Buffering 0%
[b4300508] core input debug: switching to sync mode
[b430cce8] packetizer_h264 decoder debug: found NAL_SPS (sps_id=0)
[b430cce8] packetizer_h264 decoder debug: found NAL_PPS (pps_id=0 sps_id=0)
[b4300508] core input debug: Buffering 10%
[b43041a0] core stream output debug: adding a new sout input (sout_input:0xb49004f0)
[b43060f8] core mux debug: adding a new input
[b43060f8] mux_ts mux debug: adding input codec=h264 pid=68
[b43060f8] mux_ts mux debug: new PCR PID is 68
[b4300508] core input debug: Buffering 32%
[b4300508] core input debug: Buffering 44%
[b4300508] core input debug: Buffering 55%
[b4300508] core input debug: Buffering 65%
[b4300508] core input debug: Buffering 77%
[b4300508] core input debug: Buffering 88%
[b4300508] core input debug: Buffering 98%
[b4300508] core input debug: Stream buffering done (332 ms in 331 ms)
[b4300508] core input debug: Decoder wait done in 0 msAnd I can connect to it from VLC, but the picture looks like
Processor peaks at around 17% and memory even less than that, so it’s not that.
Any suggestions ?
-
Why does ffmpeg parses an entire file beforehand
10 juillet 2023, par Dmitrii DunaevWhen calling avformat_open_input with AVIOContext set it seems that the library parses an entire file. I set both read and seek functions on the context. The video file is a fragmented mp4 with a lot of moof boxes. The file is located on a remote server. Each seek call is transformed into an http request. The library issues one seek for each moof. Is there any way to prevent avformat_open_input from parsing the entire file beforehand ? I would like to open the file and decode one frame at a specific time offset. Any suggestions ?


Here is the snippet of GO code


func (d *videoDecoder) init() error {
 avio_ctx_buffer := (*Cuint8_t)(lib.av_mallocz(avio_buffer_size))

 d.format_ctx = lib.avformat_alloc_context()
 d.avio_ctx = lib.avio_alloc_context(avio_ctx_buffer, Cint(avio_buffer_size), 0, uintptr(unsafe.Pointer(&d.ReadSeeker)), (Crw_packet_callback)(C.read_packet), nil, (Cseek_packet_callback)(C.seek_packet))
 d.format_ctx.pb = d.avio_ctx

 if ret := lib.avformat_open_input(&d.format_ctx, nil, nil, &d.options); ret < 0 {
 return fmt.Errorf("avformat open input: %w", convertRetCode(ret))
 }

 return nil
}

func read_packet(opaque unsafe.Pointer, buffer *Cuint8_t, size Cint) Cint {
 r := *(*io.ReadSeeker)(opaque)

 gobuf := (*[1 << 30]byte)(unsafe.Pointer(buffer))[:size:size]
 fmt.Printf("REQUESTED TO READ: %v\n", size)

 n, err := r.Read(gobuf)
 if err != nil {
 if errors.Is(err, io.EOF) {
 return CAVERROR_EOF
 }
 fmt.Printf("error reading from reader: %v\n", err)
 }

 return Cint(n)
}

//export seek_packet
func seek_packet(opaque unsafe.Pointer, offset Cint64_t, whence Cint) Cint64_t {
 r := *(*io.ReadSeeker)(opaque)

 fmt.Printf("REQUESTED TO SEEK: whence: %v offset: %v\n", int(whence), int64(offset))

 if whence == CAVSEEK_SIZE || whence == CAVSEEK_FORCE{
 return -1
 }

 n, err := r.Seek(int64(offset), int(whence))
 if err != nil {
 if errors.Is(err, io.EOF) {
 return -1
 }
 fmt.Printf("error seeking: %v\n", err)
 }

 return Cint64_t(n)
}



And here is the output (truncated). It seeks to every single moof box.


REQUESTED TO READ: 4196
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 4196
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 4196
REQUESTED TO SEEK: whence: 0 offset: 615080
REQUESTED TO READ: 4196
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 619276
REQUESTED TO SEEK: whence: 0 offset: 1232664
REQUESTED TO READ: 4196
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 65536 offset: 0
REQUESTED TO SEEK: whence: 2 offset: -1
REQUESTED TO SEEK: whence: 0 offset: 1236860
REQUESTED TO SEEK: whence: 0 offset: 1845238
REQUESTED TO READ: 4196
...



-
avcodec : add Newtek SpeedHQ decoder
8 janvier 2017, par Steinar H. Gundersonavcodec : add Newtek SpeedHQ decoder
This decoder can decode all existing SpeedHQ formats (SHQ0–5, 7, and 9),
including correct decoding of the alpha channel.1080p is decoded in 142 fps on one core of my i7-4600U (2.1 GHz Haswell),
about evenly split between bitstream reader and IDCT. There is currently
no attempt at slice or frame threading, even though the format trivially
supports both.NewTek very helpfully provided a full set of SHQ samples, as well as
source code for an SHQ2 encoder (not included) and assistance with
understanding some details of the format.