
Recherche avancée
Autres articles (33)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Encoding and processing into web-friendly formats
13 avril 2011, parMediaSPIP automatically converts uploaded files to internet-compatible formats.
Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
All uploaded files are stored online in their original format, so you can (...)
Sur d’autres sites (4971)
-
FFmpeg Throwing Up Error After Concat Attempt [closed]
8 mai 2021, par OrdinaryCarrot16I am trying to convert my DVDs using FFmpeg, while doing additional filtering and concatenation. The script I am making is very WIP, but it isn't working at the moment. It throws up the error : "No such filter : ''
Error initializing complex filters.
Invalid argument"


Am I using the correct syntax ?


:: Generate dummy file with blank video & audio streams (for spacing out portions when concating)
ffmpeg -y -f lavfi -i color=size=720x480:color=black:rate=30 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -c:a aac -c:v libx264 -t 1 spacer_1_tmp.mkv
ffmpeg -y -f lavfi -i color=size=720x480:color=black:rate=30 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -c:a aac -c:v libx264 -t 2 spacer_2_tmp.mkv

:: Extract intro
ffmpeg -y -avoid_negative_ts make_non_negative -ss 00:00:01 -to 00:00:24.900 -i "ADVENTURE TIME SEASON 1 DISC 1_t00.mkv" -c:v libx264 -crf 8 -preset veryfast -c:a aac -b:a 192k intro_tmp.mkv

:: Extract title card, episode, and credits
ffmpeg -y -avoid_negative_ts make_non_negative -ss 00:00:25.850 -to 00:00:32.500 -i "ADVENTURE TIME SEASON 1 DISC 1_t00.mkv" -c:v libx264 -crf 8 -preset veryfast -c:a aac -b:a 192k title_card_tmp.mkv
ffmpeg -avoid_negative_ts make_non_negative -ss 00:00:32.900 -to 00:11:16.950 -i "ADVENTURE TIME SEASON 1 DISC 1_t00.mkv" -c:v libx264 -crf 8 -preset veryfast -c:a aac -b:a 192k episode_tmp.mkv
ffmpeg -y -avoid_negative_ts make_non_negative -ss 00:11:17.950 -to 00:11:50.900 -i "ADVENTURE TIME SEASON 1 DISC 1_t00.mkv" -c:v libx264 -crf 8 -preset veryfast -c:a aac -b:a 192k credits_tmp.mkv

:: Merge all extracted components and encode into final video
ffmpeg -i spacer_1_tmp.mkv -i intro_tmp.mkv -i spacer_2_tmp.mkv -i title_card_tmp.mkv -i spacer_2_tmp.mkv -i episode_tmp.mkv -i spacer_2_tmp.mkv -i credits_tmp.mkv -i spacer_1_tmp.mkv -filter_complex "[0:0]setsar=1[v1];[0:1][a1];[1:0]setsar=1[v2];[1:1][a2];[2:0]setsar=1[v3];[2:1][a3];[3:0]setsar=1[v4];[3:1][a4];[4:0]setsar=1[v5];[4:1][a5];[5:0]setsar=1[v6];[5:1][a6];[6:0]setsar=1[v7];[6:1][a7];[7:0]setsar=1[v8];[7:1][a8];[8:0]setsar=1[v9];[8:1][a9];[v1][v2][v3][v4][v5][v6][v7][v8][v9][a1][a2][a3][a4][a5][a6][a7][a8][a9]concat=n=9:v=1:a=1[fv][fa]" -map "[fv]" -map "[fa]" -c:v libx264 -crf 20 -c:a aac -b:a 160k "Slumber Party Panic (S01E02).mp4"

pause



-
pyInstaller : Pack binary executable inside project's executable to run
18 décembre 2023, par zurTLDR ;


I would like to pack the
ffmpeg
executable inside my own executable. Currently I am getting

FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'
Skipping ./testFile202312061352.mp4 due to FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg'



Details :


I am creating executable file using following command :


pyinstaller cli.py \
 --onefile \
 --add-binary /Users/<machineuser>/anaconda3/envs/my_env/bin/ffmpeg:bin
</machineuser>


The code that uses
ffmpeg
is not authored by me. And I would like to keep that part the same.

When I run from command line while
conda
environment is active I can successfully run it aspython
(or perhapsanaconda
) knows where the binaries are. I have a pretty emptycli.py
. That seems to be the entry point and I hope if it is possible I can set thebin
directory's path there ...

I am able to successfully run the application like following :


(my_env) machineUser folder % "dist/cli_mac_001202312051431" ./testFile202312061352.mp4



I would like to run like following :


(base) machineUser folder % "dist/cli_mac_001202312051431" ./testFile202312061352.mp4



I would like to keep the world out side my executable's tmp folder the same. I would not want to change something that will be "left behind" after the exec is terminated.


Question :


Can some one please mention how to modify the
pyinstaller
command or what to change incli.py
to achieve it successfully ?

-
How to write a text in a frame using ffmpeg
21 février 2024, par Jorge Augusto WilchenI need to write a text in every frame before write in the video file, this text will be passed as a argument (std::string or char, whatever you want to best solution). For example, write "Hello World" 24px, color yellow, position 30x30.


How can i do this ?


This is my function that read frames to a AVPacket and write in the video file :


bool VideoRecorder::record_video()
{
 if (recording) {
 AVPacket packet;

 while (recording && av_read_frame(inputFormatContext, &packet) >= 0) {
 AVStream* in_stream = inputFormatContext->streams[packet.stream_index];
 AVStream* out_stream = outputFormatContext->streams[0];

 // Adjustment of DTS and PTS to ensure increasing monoticity
 if (packet.pts != AV_NOPTS_VALUE) {
 packet.pts = av_rescale_q_rnd(packet.pts, in_stream->time_base, out_stream->time_base, AVRounding(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
 }

 if (packet.dts != AV_NOPTS_VALUE) {
 packet.dts = av_rescale_q_rnd(packet.dts, in_stream->time_base, out_stream->time_base, AVRounding(AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX));
 }

 packet.duration = av_rescale_q(packet.duration, in_stream->time_base, out_stream->time_base);

 packet.stream_index = 0;

 av_interleaved_write_frame(outputFormatContext, &packet);

 av_packet_unref(&packet);
 }


 return true;
 }

 std::cerr << "Error recording video. Recording not started or already stopped." << std::endl;
 return false;
}