
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 (72)
-
Keeping control of your media in your hands
13 avril 2011, parThe vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...) -
Dépôt de média et thèmes par FTP
31 mai 2013, parL’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...) -
MediaSPIP : Modification des droits de création d’objets et de publication définitive
11 novembre 2010, parPar défaut, MediaSPIP permet de créer 5 types d’objets.
Toujours par défaut les droits de création et de publication définitive de ces objets sont réservés aux administrateurs, mais ils sont bien entendu configurables par les webmestres.
Ces droits sont ainsi bloqués pour plusieurs raisons : parce que le fait d’autoriser à publier doit être la volonté du webmestre pas de l’ensemble de la plateforme et donc ne pas être un choix par défaut ; parce qu’avoir un compte peut servir à autre choses également, (...)
Sur d’autres sites (10532)
-
Are avcodec_send_packet and avcodec_receive_frame thread safe ?
6 novembre 2022, par nckmI am trying to implement video decoding application with libav decoder.
Most libav examples are built like this (pseudocode) :


while true {
 auto packet = receive_packet_from_network();
 avcodec_send_packet(packet);
 auto frame = alloc_empty_frame();
 int r = avcodec_receive_frame(&frame);
 if (r==0) {
 send_to_render(frame);
 }
}



Above is pseudocode.
Anyway, with this traditional cycle, when I wait receive frame complete and then wait rendering complete and then wait next data received from network incoming decoder buffer becomes empty. No HW decoder pipeline, low decode performance.
Additional limitation in my application - I know exactly that one received packet from network directly corresponds to one decoded frame.


Besides that, I would like to make solution faster. For that I want to split this cycle into 2 different threads like this :


//thread one
while true {
 auto packet = receive_packet_from_network();
 avcodec_send_packet(packet);
}
//thread two
while true {
 auto frame = alloc_empty_frame();
 int r = avcodec_receive_frame(&frame);
 if (r==0) {
 send_to_render(frame);
 }



Purpose to split cycle into 2 different threads is to keep incoming decoder buffer always feed enough, mostly full. Only in that case I guess HW decoder I expect to use will be happy to work constantly pipelined. Of cause, I need thread synchronization mechanisms, not shown here just for simplicity. Of cause when EGAIN is returned from avcodec_send_packet() or avcodec_receive_frame() I need to wait for other thread makes its job feeding incoming buffer or fetching ready frames. That is another story.


Besides that, this threading solution does not work for me with random segmentation faults. Unfortunately I cannot find any libav documentation saying explicitly if such method is acceptable or not, are avcodec_send_packet() and avcodec_receive_frame() calls thread safe or not ?


So, what is best way to load HW decoder pipeline ? For me it is obvious that traditional poll cycles shown in any libav examples are not effective.


-
Mpegts packet corrupt with ffmpeg concat protocol
1er novembre 2022, par Curious OctopusI'm trying to use the
concat protocol
in ffmpeg as described in the ffmpeg docs :
https://trac.ffmpeg.org/wiki/Concatenate

However I'm getting lots of errors about corrupt packets when running the concat, so I'm worried that this isn't the best approach. My actual use case will involve running unsupervised with a ton of different source videos, so I want to be sure that it's solid.


The
concat demuxer
approach succeeds without errors but takes about 10 times as long.

Steps to reproduce


Download Big Buck Bunny :


wget https://download.blender.org/demo/movies/BBB/bbb_sunflower_1080p_30fps_normal.mp4



Transcode a 30 second chunk :


ffmpeg -i bbb_sunflower_1080p_30fps_normal.mp4 -ss '00:06:30' -t 30 -c:v libx264 -crf 18 bbb30.mp4



Create one second parts :


mkdir -p parts;
for i in $(seq -f "%02g" 0 29); do \
 ffmpeg \
 -i bbb30.mp4 \
 -ss "00:00:$i" -t 1 \
 -c:v libx264 -pix_fmt yuv420p -crf 18 \
 -bsf:v h264_mp4toannexb \
 -f mpegts \
 -y parts/$i.ts;
done



Combine all the parts into a new output mp4 :


ffmpeg -y \
 -i "concat:parts/00.ts|parts/01.ts|parts/02.ts|parts/03.ts|parts/04.ts|parts/05.ts|parts/06.ts|parts/07.ts|parts/08.ts|parts/09.ts|parts/10.ts|parts/11.ts|parts/12.ts|parts/13.ts|parts/14.ts|parts/15.ts|parts/16.ts|parts/17.ts|parts/18.ts|parts/19.ts|parts/20.ts|parts/21.ts|parts/22.ts|parts/23.ts|parts/24.ts|parts/25.ts|parts/26.ts|parts/27.ts|parts/28.ts|parts/29.ts" \
 -c copy \
 output.mp4



Stderr has lots of warnings about corrupt packets (in this case always at dts = 21300) :


[mpegts @ 0x555d172daa00] Packet corrupt (stream = 0, dts = 213000).
concat:parts/00.ts|parts/01.ts|parts/02.ts|parts/03.ts|parts/04.ts|parts/05.ts|parts/06.ts|parts/07.ts|parts/08.ts|parts/09.ts|parts/10.ts|parts/11.ts|parts/12.ts|parts/13.ts|parts/14.ts|parts/15.ts|parts/16.ts|parts/17.ts|parts/18.ts|parts/19.ts|parts/20.ts|parts/21.ts|parts/22.ts|parts/23.ts|parts/24.ts|parts/25.ts|parts/26.ts|parts/27.ts|parts/28.ts|parts/29.ts: corrupt input packet in stream 0



The resulting mp4 looks ok to my eye, but obviously ffmpeg isn't happy about something. Any ideas ?


-
Batch process audio files and image files to create movie files by matching multiple wildcard values
29 septembre 2022, par psychaudioI'm attempting to batch-process audio and image files to create video files using a Shell script with FFmpeg.


- 

- The ffmpeg script works in Terminal :




ffmpeg -loop 1 -i image.png -i audio.wav -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest output.mp4



- 

- A nested for loop with wildcards works as a batch script :




#!/bin/sh
for img in *.png; do
 for wav in *.wav; do
 ffmpeg -loop 1 -i $img -i $wav -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest ../mb/$img.mp4
 done
done



The only problem here is that it creates more combinations than I need. I'd like to be able to match wildcard values and only mix those together. I'd like to be able to prepare the filenames to match in advance to make this easier : For example, only match 1.png with 1.wav to make 1.mp4, 2.png with 2.wav to make 2.mp4 and so on. I'm able to modify the script to match the wildcards in a Regex, but I'm not sure if there is a way to then execute the logic above. Here is what I am attempting :


#!/bin/sh
img=*.png
wav=*.wav

if [[ ${img%.*} == ${wav%.*} ]];
 then
 ffmpeg -loop 1 -i $img -i $wav -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest $img.mp4;
 else
 echo "Failure"
 fi



This begins by overwriting the image files, so it does not appear to work as planned. Is there a simpler way to do this ? Perhaps looping through images 1..5 in one folder and audio files 1..5 in another ?


Thanks for any insights, and happy to provide more context (very new to this, so still learning).