I když je k dispozici velké množství programů pro stahování a kódování videí, raději používám Youtube-dl a FFmpeg . Tyto dva nástroje stačí ke stahování videí z online a kódování, dekódování, transkódování, ořezávání a muxování stažených videí. Dnes uvidíme, jak stáhnout část videa z YouTube pomocí Youtube-dl a FFmpeg v Linuxu.
Než budu znát tento tip, obvykle bych si nejprve stáhl celé video pomocí Youtube-dl a poté jej zkrátil na požadovanou délku pomocí FFmpeg, jak je uvedeno níže.
Pro stažení videa bych udělal:
$ youtube-dl <youtube-link>
A pak ořízněte stažené video pomocí počátečního a koncového času videoklipu podle mého vkusu pomocí FFmpeg pomocí příkazu:
$ ffmpeg -i input_video.mp4 -ss 00:01:00 -to 00:03:00 -c copy output_video.mp4
To je to, co jsem dělal, abych získal pouze část videa. Pokud stále používáte tuto metodu stahování a ořezávání videí, neobtěžujte se. Znám o něco lepší způsob, jak stáhnout části videa z youtube místo celého videa. Čtěte dál!
Stáhněte si část videa z Youtube s Youtube-dl a FFmpeg
Nejprve uvidíme, jak stáhnout konkrétní část videa z youtube pomocí skriptu Youtube-dl.
Pro účely této příručky budu používat toto video z oficiálního kanálu YouTube pro náš OSTechNix blog. Toto video je dlouhé 2:43 minuty a v podstatě ukazuje, jak spouštět webové prohlížeče v režimu celé obrazovky v Linuxu.
Pokud jste si ještě nenainstalovali Youtube-dl na svůj Linux, podívejte se na odkazy připojené v prvním odstavci.
Youtube-dl má --postprocessor-args
parametr ke stažení konkrétní části videa z youtube nebo videí z několika dalších webových stránek.
Chcete-li stáhnout část videa pomocí Youtube-dl, spusťte:
$ youtube-dl --postprocessor-args "-ss 00:01:00 -to 00:02:00" "https://www.youtube.com/watch?v=dc7I-i7sPrg"
Zde --ss 00:01:00
je počáteční čas videa a -to 00:02:00
je čas konce. Výše uvedený příkaz tedy začne kódovat v 1 minutě a skončí ve 2 minutách.
Můžete také použít -t
příznak k určení celkové doby trvání.
$ youtube-dl --postprocessor-args "-ss 00:01:00 -t 00:00:50" "https://www.youtube.com/watch?v=dc7I-i7sPrg"
Kódování se spustí po 1 minutě a bude trvat pouze dalších 50 sekund.
Upozorňujeme, že Youtube-dl stáhne celé video před jeho zpracováním. Po oříznutí videa na danou délku smaže původní video a ponechá si pouze část videa. Pokud chcete zachovat obojí, jednoduše předejte -k
vlajka.
Pokud nechcete stahovat celé video, ale pouze jeho část, můžete zkombinovat ffmpeg a youtube-dl a stáhnout konkrétní část videa z youtube, jak je uvedeno níže:
$ youtube-dl --external-downloader ffmpeg --external-downloader-args "-ss 00:01:00.00 -to 00:02:00.00" -f best "https://www.youtube.com/watch?v=dc7I-i7sPrg"
Zde jsme použili -f best
příznak ke stažení zvuku a videa v nejlepší kvalitě.
Výše uvedený příkaz stáhne dané Youtube video se skriptem Youtube-dl a poté jej ořízne počínaje 1 minutou a skončí na 2 minutách.
Zde je další verze příkazu, která dělá stejnou práci.
$ ffmpeg -ss 00:01:00 -to 00:02:00 -i "$(youtube-dl -f best --get-url 'https://www.youtube.com/watch?v=dc7I-i7sPrg')" -c:v copy -c:a copy kiosk.mp4
Tento příkaz provede totéž jako výše uvedený příkaz, ale uloží výstupní video jako „kiosk.mp4“.
Aktualizace:
Jak se níže vyjádřil jeden z našich čtenářů, pokud výše uvedený tip z nějakého důvodu nefunguje, stačí přidat desetinné místo po sekundách jako "-ss 00:01:00.00 -to 00:02:00.00
" místo "-ss 00:01:00 -to 00:02:00
". Osobně jsem to však netestoval. Čtenář však tvrdí, že to funguje."
Doufám, že to pomůže.
Reference
Vybraný obrázek od kapil 99 od Pixabay .