
Recherche avancée
Médias (91)
-
MediaSPIP Simple : futur thème graphique par défaut ?
26 septembre 2013, par
Mis à jour : Octobre 2013
Langue : français
Type : Video
-
avec chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
sans chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
config chosen
13 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
SPIP - plugins - embed code - Exemple
2 septembre 2013, par
Mis à jour : Septembre 2013
Langue : français
Type : Image
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
Autres articles (21)
-
Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs
12 avril 2011, parLa manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras. -
Other interesting software
13 avril 2011, parWe don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
We don’t know them, we didn’t try them, but you can take a peek.
Videopress
Website : http://videopress.com/
License : GNU/GPL v2
Source code : (...) -
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 (...)
Sur d’autres sites (4410)
-
VLC huge buffering times over rtp for local H264 stream
15 mars 2022, par mikeI'm outputting an H264 stream, encoded by my application using ffmpeg. I can display it using
ffplay
, but when trying to view the stream in VLC, I only get the first frame, or it looks like that's the case.

The messages output shows that it is "buffering", taking around a minute to get to 100% when the frame updates.
When using
ffplay
, the latency is about 50-100ms at worst.

I am sending to
rtp://127.0.0.1:6666?pkt_size=1316
with the formatrtp_mpegts
.
I am new to this and it's highly likely I haven't set the frame up completely correctly. The process is (minus declarations and error checking)

codec_name = "libx264";
codec = avcodec_find_encoder_by_name(codec_name.c_str());
context = avcodec_alloc_context3(codec);
pkt = av_packet_alloc();
context->bit_rate = 5 * Mega;
context->width = info.DisplayWidth;
context->height = info.DisplayHeight;
context->time_base = { 1, FPS };
context->framerate = { FPS, 1 };
context->gop_size = 100;
context->max_b_frames = 1; 
context->pix_fmt = AV_PIX_FMT_YUV420P;
if (codec->id == AV_CODEC_ID_H264)
 {
 check_ret("set option: preset", av_opt_set(context->priv_data, "preset", "fast", 0));
 check_ret("set option: tune", av_opt_set(context->priv_data, "tune", "zerolatency", 0));
 check_ret("set option: profile", av_opt_set(context->priv_data, "profile", "baseline", 0)); 
 }
check_ret("open codec", avcodec_open2(context, codec, NULL));

// setup the stream 
fmt = (AVOutputFormat*)av_guess_format("rtp_mpegts", NULL, NULL);

avformat_alloc_output_context2(&avfctx, fmt, fmt->name,
 "rtp://127.0.0.1:6666?pkt_size=1316"); 
 
avio_open(&avfctx->pb, avfctx->url, AVIO_FLAG_WRITE);
AVStream* stream = avformat_new_stream(avfctx, codec);
avcodec_parameters_from_context(stream->codecpar, context);
stream->time_base.num = 1;
stream->time_base.den = FPS;
avformat_write_header(avfctx, NULL);

// then the encoding (in an output loop)
<not get="get" frame="frame" from="from" rgba="rgba" to="to" yuv="yuv">
yuvFrame->pts = i++; // i is incremented every frame
avcodec_send_frame(enc_ctx, yuvFrame);
 while (ret >= 0) {
 ret = avcodec_receive_packet(enc_ctx, pkt); 
 //ret = av_interleaved_write_frame(avfctx, pkt); was using this, don't seem to need it
 ret = av_write_frame(avfctx, pkt);
 av_packet_unref(pkt);
}
</not>


The VLC output looks like this :


main debug: using hw decoder module "d3d11va"
avcodec info: Using D3D11VA (NVIDIA GeForce RTX 2080 Super with Max-Q Design, vendor 10de(NVIDIA), device 1e93, revision a1) for hardware decoding
qt debug: Logical video size: 1280x720
main debug: resized to 1280x720
main debug: VoutDisplayEvent 'resize' 1280x720
main debug: Received first picture
main debug: Buffering 1%
main debug: Buffering 2%
main debug: Buffering 3%
main debug: auto hiding mouse cursor
main debug: Buffering 4%
main debug: Buffering 5%
main debug: Buffering 6%
main debug: Buffering 7%
main debug: Buffering 8%
main debug: Buffering 9%
main debug: Buffering 10%
main debug: auto hiding mouse cursor
main debug: Buffering 11%
rtp warning: 1 packet(s) lost
rtp warning: 1 packet(s) lost
rtp warning: 1 packet(s) lost
ts warning: discontinuity received 0x3 instead of 0xd (pid=256)
ts warning: discontinuity received 0x5 instead of 0xf (pid=256)
ts warning: discontinuity received 0x1 instead of 0xb (pid=256)
main debug: Buffering 12%
main debug: Buffering 13%
main debug: Buffering 14%
main debug: Buffering 15%
main debug: Buffering 16%
main debug: Buffering 17%
main debug: Buffering 18%
main debug: auto hiding mouse cursor
main debug: Buffering 19%
main debug: Buffering 20%



-
WinAPI multithreading access violation when writing in local variable
26 février 2016, par JustPingoI’m making a multithreaded program using Visual C++, Win32 API (using
_beginthread
) that also uses FFmpeg (it is claimed to be thread-safe, and I’m using it only with one single thread anyway).Here is the part of my thread’s code that causes problems (everything is inside of the thread function) :
Arena* arena = NULL;
switch (task) {
case TaskOne:
arena = (Arena*) malloc(sizeof(Arena));
for (uint i = 0; i < FIGHTSPERROUND; i++) {
generateArena(arena, ARENAWALLSAMOUNT, ARENAWIDTH, ARENAHEIGHT, ARENAMAXENTITIES, 255);
spawnPlayer(arena, playerOne, 3, 1, 0, 0, ARENAPLAYERLIFE);
spawnPlayer(arena, playerTwo, 2, 2, ARENAWIDTH-1, ARENAHEIGHT-1, ARENAPLAYERLIFE);
do {
tickArena(arena);
} while ((result = getResult(arena)) == 0);
switch (result) {
case 1: teamOneScore++; break;
case 2: teamTwoScore++; break;
default: break;
}
freeArena(arena);
clearMemory(playerOne);
clearMemory(playerTwo);
clearBrain(playerOne);
clearBrain(playerTwo);
}
threadTeamOneScore[threadID] = teamOneScore;
threadTeamTwoScore[threadID] = teamTwoScore;
break;
default: break;
}Here is how I generate my arena :
void generateArena(Arena* arena, uint wallsAmount, uint xSize, uint ySize, uint maxEntities, uint maxTurns) {
CasesTypes** map;
map = (CasesTypes**) malloc(xSize * sizeof(CasesTypes*));
memset(map, 0, xSize * sizeof(CasesTypes*));
for (uint i = 0; i < xSize; i++) {
map[i] = (CasesTypes*)malloc(ySize * sizeof(CasesTypes));
memset(map[i], 0, ySize * sizeof(CasesTypes));
}
arena->map = map;
arena->entities = (Entity*) malloc(maxEntities * sizeof(Entity));
memset(arena->entities, 0, maxEntities * sizeof(Entity));
arena->width = xSize;
arena->height = ySize;
arena->maxEntities = maxEntities;
arena->maxTurns = maxTurns;
arena->currentTurn = 0;
arena->entitiesAmount = 0;
for (uint i = 0; i < wallsAmount; i++)
arena->map[random2(1, xSize-1)][random2(1, ySize-1)] = Wall;
}This works as expected 4 times in 5.
But sometimes, for some reason,arena = (Arena*) malloc(sizeof(Arena));
throws an access violation exception.For example, Visual Studio 2015’s debugger once said :
Exception thrown at 0x77DBE389 (ntdll.dll) in MyProgram.exe: 0xC0000005: Access violation writing location 0x007C160F.
When I used the debugger to find what
((void*) 0x007C160F)
was, it always happened to be something similar to :avformat-57.dll!0x007c160f (load symbols for additional information)
avformat is a part of FFmpeg. The address was different every times, but it always had something to do with FFmpeg.
I can’t figure out what is causing the problem.
If that can help, sometimes the arena also happens to get corrupted (some of its fields get extremely big while generating them withgenerateArena
although it is never changed and only set once to an integer, this leads to a crash later).Thank you in advance !
-
How to re-stream h.264 live stream to local mjpeg using ffmpeg ?
15 janvier 2020, par xor31fourUsing this ffmpeg command I am able to convert a pre-existing file from h.264 to mjpeg.
ffmpeg -i input.mov -c:v mjpeg -q:v 3 -an output.mov
My live stream URL in the form rtsp ://XXX.XXX.XX.X/stream1.sdp
Is it possible to locally re-stream this as an mjpeg url ?