
Recherche avancée
Médias (1)
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (82)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)
Sur d’autres sites (12160)
-
probing individual klv streams for specific signature/header
17 juin 2019, par J HeymanCurrently, the software I support processes the different streams within a video container (.ts, .mp4, .mpg, etc) without any issues as long as there is only one(1) type of each codec stream.
I’ve recently encountered a video sample that actually contains three(3) identified AV_CODE_ID_SMPTE_KLV streams. As I loop through the three streams, one of them is the stream I need.
I haven’t been able to figure out an easy way to do the specific query I need (check for known header bytes in the stream)....
for (i = 0; i < nb_streams; i++) {
int real_stream_index = program ? program[i] : i;
AVStream *st = ic->streams[real_stream_index];
AVCodecParameters *par = st->codecpar;
if (par->codec_type != type)
continue;
if (id != AV_CODEC_ID_NONE) {
if (par->codec_id != id)
continue;
}
if (wanted_stream_nb >= 0 && real_stream_index != wanted_stream_nb)
continue;
if (type == AVMEDIA_TYPE_AUDIO && !(par->channels && par->sample_rate))
continue;
disposition = !(st->disposition & (AV_DISPOSITION_HEARING_IMPAIRED | AV_DISPOSITION_VISUAL_IMPAIRED));
count = st->codec_info_nb_frames;
bitrate = par->bit_rate;
multiframe = FFMIN(5, count);
if ((best_disposition > disposition) ||
(best_disposition == disposition && best_multiframe > multiframe) ||
(best_disposition == disposition && best_multiframe == multiframe && best_bitrate > bitrate) ||
(best_disposition == disposition && best_multiframe == multiframe && best_bitrate == bitrate && best_count >= count))
continue;
best_disposition = disposition;
best_count = count;
best_bitrate = bitrate;
best_multiframe = multiframe;
ret = real_stream_index;My thought was to add another || to the complex if{} above, but I haven’t been able to figure out how to do the comparison I need (looking for the header bytes).
I’ve looked into existing documentation, and thought that accessing the probe_data structure within the AVStream contained within the AVFormatContext structure would give me the first few bytes of the stream. No such luck, as the probe_data structure is empty even though we’ve done a probe on the file itself.
fprintf(stderr, "Filename: %s\t buf_size: %d\n", st-> probe_data.filename, st-> probe_data.buf_size);
-
Extract individual frames from video and pipe them to StandardOutput in FFmpeg
13 novembre 2019, par Nicke ManarinI’m trying to extract frames from a video using FFmpeg. But instead of letting FFmpeg write the files to disk, I’m trying to get the frames directly from
StandardOutput
.I’m not sure if it’s feasible. I’m expecting to get each frame individually as they get decoded by reading and waiting until all frames are extracted.
With the current code, I think that I’m getting all frames at once.
Command
ffmpeg -i "C:\video.mp4" -r 30 -ss 00:00:10.000 -to 00:01:20.000 -hide_banner -c:v png -f image2pipe -
Code
var start = TimeSpan.FromMilliseconds(SelectionSlider.LowerValue);
var end = TimeSpan.FromMilliseconds(SelectionSlider.UpperValue);
var info = new ProcessStartInfo(UserSettings.All.FfmpegLocation)
{
Arguments = $" -i \"{VideoPath}\" -r {fps} -ss {start:hh\\:mm\\:ss\\.fff} " +
"-to {end:hh\\:mm\\:ss\\.fff} -hide_banner -c:v png -f image2pipe -",
CreateNoWindow = true,
ErrorDialog = false,
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardOutput = true
};
var process = new Process();
process.StartInfo = info;
process.Start();
while (!process.StandardOutput.EndOfStream)
{
if (_cancelled)
{
process.Kill();
return;
}
//This returns me the entire byte array, of all frames.
var bytes = default(byte[]);
using (var memstream = new MemoryStream())
{
process.StandardOutput.BaseStream.CopyTo(memstream);
bytes = memstream.ToArray();
}
}
I also tried to use
process.BeginOutputReadLine()
and wait for each frame inOutputDataReceived
. But it returns parts of each frame, like the 10 first bytes, than other 50 bytes, it’s erratic.Is there any way to get the frames separately via the output stream ?
-
FFmpeg individual image zoom-in transition
19 juillet 2024, par The SomebodyI'm stuck with an ffmpeg command that needs to generate a video. Originally, I had an ffmpeg command that would loop through images and change after a certain amount of time. Now, to improve the video a little bit, I wish to add a zoom in effect on each image.


I am facing an issue that when I generate the video, the images no longer change. That is, it is constantly first image. I can the zoom effect replay as it should (for every changing image), but the images do not actually change (it is always the first picture). Any advice/suggestion would be appreciated. I am sure, it will be something wrong with the syntax, but now I am at a loss..


Original code, that works fine (without the zoom in) :


ffmpeg -n -loop 1 -t 26.01 -i "\image_0.png" -loop 1 -t 26.01 -i "\image_1.png"
 -loop 1 -t 26.01 -i "\image_2.png" -loop 1 -t 26.01 -i "\image_3.png" 
 -i "/speech.mp3" 
 -filter_complex "[0:v]scale=1080x1920,setpts=PTS-STARTPTS[v0]; 
 [1:v]scale=1080x1920,setpts=PTS-STARTPTS[v1]; 
 [2:v]scale=1080x1920,setpts=PTS-STARTPTS[v2]; 
 [3:v]scale=1080x1920,setpts=PTS-STARTPTS[v3]; 
 [v0][v1][v2][v3]concat=n=4:v=1:a=0,subtitles='"C\:/transcription.ass"'[v]" -map "[v]" -map 4:a -c:v libx264 -c:a aac -b:a 192k
 -shortest "C:\Videos/Video.mp4" -loglevel verbose



Code that does not work as intended :


ffmpeg -n -loop 1 -t 26.01 -i "\image_0.png" -loop 1 -t 26.01 -i "\image_1.png" -loop 1 -t 26.01 -i "\image_2.png" -loop 1 -t 26.01 -i "\image_3.png" -i "/speech.mp3" -filter_complex "[0:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v0]; [1:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v1]; [2:v]scale=1080x1920,zoompan=z='zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v2]; [1:v]scale=1080x1920,zoompan='z=zoom+0.001':d=650:s=1080x1920:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2),setpts=PTS-STARTPTS[v3]; [v0][v1][v2][v3]concat=n=4:v=1:a=0,subtitles='C\:/transcription.ass'[v]" -map "[v]" -map 4:a -c:v libx264 -c:a aac -b:a 192k -shortest "C:\Videos/Video.mp4" -loglevel verbose



I tried to change and see if it really is just the first image that's used through out the video and confirmed it. Also tried to play around with the symbols '"', ' ' ', etc.