
Recherche avancée
Médias (91)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
-
Stereo master soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
#7 Ambience
16 octobre 2011, par
Mis à jour : Juin 2015
Langue : English
Type : Audio
-
#6 Teaser Music
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#5 End Title
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
Autres articles (50)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (6048)
-
Create a video with timestamp from multiple images with "picture taken date/time" in the meta data with ffmpeg or similar ?
16 mars 2018, par m4D_guYI have two time lapse videos with a rate of 1 fps. The camera took 1 Image every minute. Unfortunately it was missed to set the camera to burn/print on every image the time and date. I am trying to burn the time and date afterwards into the video.
I decoded with
ffmpeg
the two .avi files into 7000 single images each and wrote aR
script that renamed the files into their "creation" date (the time and date the pictures where taken). Then i usedexiftool
to write those information "into" the file, into their exif data or meta data or whatever this is called.The final images in the folder are looking like this :
2018-03-12 17_36_40.png
2018-03-12 17_35_40.png
2018-03-12 17_34_40.png
...
Is it possible to create a Video from these images again with
ffmpeg
or similiar with a "timestamp" in the video so you can see while watching a time and date stamp in the video ? -
gstreamer : Internal data error, in appsink "pull-sample" mode
9 mai 2018, par Amir RazaI am getting Internal data error, in appsink .
My application is to read .yuv data , encode and write to a buffer.I have accomplished the writing it file but when i changed the code to write it buffer it giving error.
Its only able to write only single packet (188bytes).Output of program :
(ConsoleApplication6.exe:14432): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstopenh264.dll': The specified procedure could not be found.
pipeline: filesrc location=Transformers1080p.yuv blocksize=4147200 ! videoparse width=1920 height=1080 framerate=60/1 ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! x264enc ! mpegtsmux ! queue ! appsink name = sink
Now playing: Transformers1080p.yuv
Running...
on_new_sample_from_sink
sample got of size = 188
Error: Internal data stream error.
Returned, stopping playback
Deleting pipelinemy code :
#define _CRT_SECURE_NO_WARNINGS 1
//#pragma warning(disable:4996)
#include <gst></gst>gst.h>
#include <gst></gst>audio/audio.h>
#include <gst></gst>app/gstappsrc.h>
#include <gst></gst>base/gstpushsrc.h>
#include <gst></gst>app/gstappsink.h>
#include <gst></gst>video/video.h>
#include <gst></gst>video/gstvideometa.h>
#include <gst></gst>video/video-overlay-composition.h>
#include
#include
#include
#include
using namespace std;
GstElement *SinkBuff;
char *out_file_path;
FILE *out_file;
//gst-launch-1.0.exe -v filesrc location=Transformers1080p.yuv blocksize=4147200 !
//videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 !
//openh264enc ! mpegtsmux ! filesink location=final.ts
static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data)
{
GMainLoop *loop = (GMainLoop *)data;
switch (GST_MESSAGE_TYPE(msg))
{
case GST_MESSAGE_EOS:
g_print("End of stream\n");
g_main_loop_quit(loop);
break;
case GST_MESSAGE_ERROR:
{
gchar *debug;
GError *error;
gst_message_parse_error(msg, &error, &debug);
g_free(debug);
g_printerr("Error: %s\n", error->message);
g_error_free(error);
g_main_loop_quit(loop);
break;
}
default:
break;
}
return TRUE;
}
/* called when the appsink notifies us that there is a new buffer ready for
* processing */
static void on_new_sample_from_sink(GstElement * elt, void *ptr)
{
guint size;
GstBuffer *app_buffer, *buffer;
GstElement *source;
GstMapInfo map = { 0 };
GstSample *sample;
static GstClockTime timestamp = 0;
printf("\n on_new_sample_from_sink \n ");
/* get the buffer from appsink */
g_signal_emit_by_name(SinkBuff, "pull-sample", &sample, NULL);
if (sample)
{
buffer = gst_sample_get_buffer(sample);
gst_buffer_map(buffer, &map, GST_MAP_READ);
printf("\n sample got of size = %d \n", map.size);
//Buffer
fwrite((char *)map.data, 1, sizeof(map.size), out_file);
gst_buffer_unmap(buffer, &map);
gst_sample_unref(sample);
}
}
int main(int argc, char *argv[])
{
GMainLoop *loop;
int width, height;
GstElement *pipeline;
GError *error = NULL;
GstBus *bus;
char pipeline_desc[1024];
out_file = fopen("output.ts", "wb");
/* Initialisation */
gst_init(&argc, &argv);
// Create gstreamer loop
loop = g_main_loop_new(NULL, FALSE);
sprintf(
pipeline_desc,
" filesrc location=Transformers1080p.yuv blocksize=4147200 !"
" videoparse width=1920 height=1080 framerate=60/1 !"
" videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=60/1 ! "
//" x264enc ! mpegtsmux ! filesink location=final.ts");
" x264enc ! mpegtsmux ! queue ! appsink name = sink");
printf("pipeline: %s\n", pipeline_desc);
/* Create gstreamer elements */
pipeline = gst_parse_launch(pipeline_desc, &error);
/* TODO: Handle recoverable errors. */
if (!pipeline) {
g_printerr("Pipeline could not be created. Exiting.\n");
return -1;
}
/* get sink */
SinkBuff = gst_bin_get_by_name(GST_BIN(pipeline), "sink");
g_object_set(G_OBJECT(SinkBuff), "emit-signals", TRUE, "sync", FALSE, NULL);
g_signal_connect(SinkBuff, "new-sample", G_CALLBACK(on_new_sample_from_sink), NULL);
/* Set up the pipeline */
/* we add a message handler */
bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
gst_bus_add_watch(bus, bus_call, loop);
gst_object_unref(bus);
/* Set the pipeline to "playing" state*/
g_print("Now playing: Transformers1080p.yuv \n");
gst_element_set_state(pipeline, GST_STATE_PLAYING);
/* Iterate */
g_print("Running...\n");
g_main_loop_run(loop);
/* Out of the main loop, clean up nicely */
g_print("Returned, stopping playback\n");
gst_element_set_state(pipeline, GST_STATE_NULL);
g_print("Deleting pipeline\n");
gst_object_unref(GST_OBJECT(pipeline));
fclose(out_file);
g_main_loop_unref(loop);
return 0;
} -
FFMPEG "listfile.txt : Invalid data found when processing input" concat error
18 juillet 2019, par LéandreI have a txt file, where I have all my mp4 file to concat with ffmpeg. I saw the documentation of FFMPEG but I don’t see where I did something wrong.
Here is my txt file :
file '/home/leandre/PycharmProjects/video_test/1.mp4'
file '/home/leandre/PycharmProjects/video_test/2.mp4'
file '/home/leandre/PycharmProjects/video_test/3.mp4'
file '/home/leandre/PycharmProjects/video_test/4.mp4'
file '/home/leandre/PycharmProjects/video_test/5.mp4'
file '/home/leandre/PycharmProjects/video_test/6.mp4'
file '/home/leandre/PycharmProjects/video_test/7.mp4'
file '/home/leandre/PycharmProjects/video_test/8.mp4'
file '/home/leandre/PycharmProjects/video_test/9.mp4'
file '/home/leandre/PycharmProjects/video_test/10.mp4'And this is my ffmpeg command :
ffmpeg -f concat -safe 0 -i listfile.txt -c copy out_concat.mp4
And my error
listfile.txt: Invalid data found when processing input