
Recherche avancée
Autres articles (111)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
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. -
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 (10343)
-
rtsp timeout av_read_frame
30 novembre 2012, par user1175197I am using ffmpeg to play an RTSP stream. I have a loop like
while (av_read_frame(formatContext, packet)>=0)
{
doWork();
}I can watch the stream as long as there is something moving in front of the camera. But whenever the view is stable the above function returns EOF as I checked with av_strerror. Any ideas why and how to fix it ?
thanks
-
FFmpeg encoding through h264_qsv : pts < dts
29 décembre 2023, par MarioI'm modifying a portion of code that encodes input frames in an output mp4 file via the h264 software encoder which works quite well. Most of the code comes from https://ffmpeg.org/doxygen/6.0/mux_8c-example.html.


I changed the "working" code to use the h264_qsv hardware accelerated encoder. After a lot of work the new code produces h264 encoded frames. For testing purpose I can write them with




fwrite(pkt->data, pkt->size, 1, fout)




and mpv displays frames correctly (with some warnings).


When I use regular :




av_interleaved_write_frame(fmt_ctx, pkt)




(as from previously working code) returns an error and on stderr :




[mp4 @ 0x7f82a80b3b40] pts (-1574122160956548608) < dts
(1574122160956547584) in stream 0




To look for the cause I added the following lines just before av_interleaved_write_frame(). I read that it may be a non-fatal error and so I continue after the errors, but there isn't output.




frame->pts=210

pkt->pts=-1574122160956548608

pkt->dts=1574122160956547584

[mp4 @ 0x7effb40b3b40] pts (-1574122160956548608) < dts (1574122160956547584) in stream 0

...

frame->pts=240

pkt->pts=-1574122160956548608

pkt->dts=1574122160956548096

[mp4 @ 0x7effb40b3b40] pts (-1574122160956548608) < dts (1574122160956548096) in stream 0



I did another test assigning incremental values to pkt->pts and pkt->dts, it works but resulting fps is wrong, and I don't think it is the right solution !


Why does the av_interleaved_write_frame(fmt_ctx, pkt) function returns an error with h264_qsv encoder ? Who should set pkt->pts and pkt->dts ?


-
FFMpeg C++ How to create a filter with multiple outputs ?
11 septembre 2020, par GoodSimonFor example, we have one
AVFrame
with a size of 128x128 pixels and the task is to split theAVFrame
into 4 parts (4 separateAVFrame
). To do this, I fill the graph with filters using theavfilter_graph_parse2(...)
function, and then callavfilter_graph_config(...)
.

Let's start. Let's cut out the top left corner. To crop a frame, we need to use the
crop
filter, which means we initialize the AVFilterGraph graph with the line :

buffer = width = 128: height = 128: pix_fmt = 2: time_base = 1/25, pixel_aspect = 128/64 [pad_in];
[pad_in] crop = w = 64: h = 64: x = 0: y = 0, buffersink;



Everything works great ! Now let's try to make several outputs :


buffer = width = 128: height = 128: pix_fmt = 2: time_base = 1/25, pixel_aspect = 128/64 [pad_in];
[pad_in] crop = w = 64: h = 64: x = 0: y = 0, buffersink;
[pad_in] crop = w = 64: h = 64: x = 64: y = 0, buffersink;
[pad_in] crop = w = 64: h = 64: x = 0: y = 64, buffersink;
[pad_in] crop = w = 64: h = 64: x = 64: y = 64, buffersink



As you can see, we have one
buffer
for the input image, 4crop
filters for cutting each piece, and 4buffersink
filters for the output images. The callavfilter_graph_parse2(...)
returns 0, which is good, butavfilter_graph_config()
returns the error code-22 == AVERROR(EINVAL)
and the message is output to the console :Input pad "default" with type video of the filter instance "Parsed_crop_3" of crop not connected to any source.


I am asking for your help in creating a filter with multiple outputs.