
Recherche avancée
Médias (2)
-
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 (107)
-
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
(Dés)Activation de fonctionnalités (plugins)
18 février 2011, parPour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...) -
Activation de l’inscription des visiteurs
12 avril 2011, parIl est également possible d’activer l’inscription des visiteurs ce qui permettra à tout un chacun d’ouvrir soit même un compte sur le canal en question dans le cadre de projets ouverts par exemple.
Pour ce faire, il suffit d’aller dans l’espace de configuration du site en choisissant le sous menus "Gestion des utilisateurs". Le premier formulaire visible correspond à cette fonctionnalité.
Par défaut, MediaSPIP a créé lors de son initialisation un élément de menu dans le menu du haut de la page menant (...)
Sur d’autres sites (11236)
-
How to stream RTMP to Azure Media Services ?
26 octobre 2020, par AbbasI'm trying to stream my camera to Azure Media Services LiveEvent. I'm using Media Services' REST-API to obtain the ingest URL, however the docs don't mention how to stream RTMP from an Android Phone.


So far I've tried quiet a few Android RTMP publishing libraries available on Git but each one of them fails at establishing a connection. The list of libraries I've tried so far :


- 

- https://github.com/TakuSemba/RtmpPublisher (Fails internally NDK while opening a connection)
- https://github.com/pedroSG94/rtmp-rtsp-stream-client-java (Fails while expecting to receive a header from the ingest URL)
- And several others all exhibiting one of the two above mentioned behaviors.








I've also tried streaming from an mp4 video file using ffmpeg inspired from this SO Answer :


ffmpeg -re -i video.mp4 -vcodec libx264 -profile:v main -preset:v medium -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -b:v 2500k -maxrate 2500k -bufsize 2500k -filter:v scale="trunc(oha/2)2:720" -sws_flags lanczos+accurate_rnd -acodec aac -b:a 96k -ar 48000 -ac 2 -f flv rtmp://



But I'm getting :


rtmp://: I/O error



Am I missing something ?


Is it even at all possible to stream to an ingest URL without a middle tier as suggested by many Azure people is the way to go ?


Edit : I've successfully streamed to YouTube Live Streaming using two RTMP libraries and so I'm now pretty sure the issue is not with the RTMP streaming libraries but with how the Azure Live Streaming works. I'm definitely missing a step here.


-
FFmpeg live streaming for media source extensions(MSE)
1er septembre 2022, par IceCreamVanI try implement video live streaming from RTSP stream to webpage with media source extensions(MSE) with using FFmpeg


Expected system diagram.




I know that this task can realize with HLS or WebRTC, but HLS have large delay and WebRTC very hard to implementation.


I want catch RTSP stream with FFMPEG split it to ISO BMMF(ISO/IEC 14496-12) chuncks in "live mode" and send it to my web server by TCP in which i restream this chunks to webpage by websocket. In webpage i append chunck to buffer sourceBuffer.appendBuffer(new Uint8Array(chunck)) and video play in streaming mode.


Problem in first step with ffmpeg i can easy split RTSP stream to segments with this


ffmpeg -i test.mp4 -map 0 -c copy -f segment -segment_time 2 -reset_timestamps 1 output_%03d.mp4



but i cant redirect output to tcp ://127.0.0.1 or pipe:1, if i correctly understood segment not work with pipes. For example i can easy send video frames in jpg by TCP with image2 catch ff d9 bytes in TCP stream and split stream to jpg images.


ffmpeg -i rtsp://127.0.0.1:8554 -f image2pipe tcp://127.0.0.1:7400



How i can split RTSP stream to ISO BMMF chunks for sending to webpage for playing with media source extensions ? Or other way to prepare RTSP stream with FFmpeg for playing in MSE. Maybe i not correctly understood how working MSE and how prepare video for playing.


-
How to accurately/precisely seek to a timestamp in media with ffmpeg API ?
11 novembre 2024, par wangt13I am writing a simple audio player with
ffmpeg
ver.4.4.4, and I want to seek to specific timestamp of the audio media (a MP3 file).

Here is my code.
I am using
avformat_seek_file()
with flags ofAVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD
, and when I setseek_pos
to 10 second when it is playing frames of 3rd second, it seemed NOT jump to the 10th second, it only played the audios after 3rd second !

Then I added the code skipping/discarding the packets whose pts is before the seek position. This time, it loops in the
if (curr_s < seek_ts)
, not going to 10th seconds.

It seemed NO
keyframe
at 10th second.

void decode_func(...)
{
 while (1) {
 if (av_read_frame(pfmtctx, packet) < 0) {
 avcodec_flush_buffers(pcodectx);
 printf("Got end of media, breaking\n");
 break;
 }
 /**
 * Discard the packet of pts before seek position
 */
 curr_s = packet->pts * av_q2d(pfmtctx->streams[stream]->time_base);
 if (seek_ts) {
 if (curr_s < seek_ts) {
 avcodec_flush_buffers(pcodectx);
 av_frame_unref(pFrame);
 continue;
 } else {
 seek_ts = 0;
 }
 }
 if (seek_req) {
 int64_t seek_abs;
 seek_req = 0;
 seek_abs = (seek_pos)*AV_TIME_BASE;
 printf("Seek to %lld, pts: %lld\n", seek_abs, packet->pts;
 if (seek_abs < 0) {
 seek_abs = 0;
 }
 if (avformat_seek_file(pfmtctx, -1, INT64_MIN, seek_abs, INT64_MAX, AVSEEK_FLAG_ANY | AVSEEK_FLAG_BACKWARD) >= 0) {
 avcodec_flush_buffers(pcodectx);
 seek_ts = seek_abs;
 continue;
 } else {
 printf("Failed to seek to %lld\n", seek_abs);
 seek_ts = 0;
 }
 }

 res = avcodec_send_packet(pcodectx, packet);
 while (res >= 0) {
 res = avcodec_receive_frame(pcodectx, pFrame);
 if (res == AVERROR(EAGAIN)) {
 break;
 } else if (res == AVERROR_EOF) {
 break;
 } else if (res >= 0) {
 /// Processing decoded frame
 }
 av_frame_unref(frame);
 }
}



So, how can I precisely (almost) seek to a timestamp with FFMPEG ?