Portál AbcLinuxu, 10. května 2025 22:32
# file begin end v1.mp4 1:01 2:01 v2.mp4 3:02 3:32 v3.mp4 2:03 5:23Cílem je vybrané intervaly vystříhat a slepit do jednoho výsledného videa v uvedeném pořadí:
[0:00]---v1---[2:00]---v2---[2:30]---v3---[5:50]Preferuji použití ffmpegu, neboť už je na serveru nainstalován a obsluhující skript je napsán v PHP. To by však nemělo být nijak podstatné. Pokud jde o vystřihnutí jednoho intervalu, to je snadné (escapování parametrů pro přehlednost vynecháno):
exec("ffmpeg -ss $begin -i $input_file -ss $begin -c copy $output_file");V podstatě bych mohl takto vystříhat všechny intervaly a pak je slepit dohromady, ale moc se mi nezamlouvá mít spoustu dočasných souborů, ani složité řízení mnoha spštěných procesů. Nevíš, prosím, o nějakém elegantním způsobu, jak programově sestříhat video z mnoha klipů?
(ffmpeg první -y -; ffmpeg druhý -y -; ffmpeg třetí -y -) | ffmpeg -i - -y finální:) Pokud by forkování byl už problém (e.g., bylo by to lepení frame po framu), asi to s ffmpegem nepůjde, ale použij na to MLT (taková ta věc co je nad ní postavené Kdenlive, má to XML rozhraní).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.