Anche se sono disponibili moltissimi programmi per scaricare e codificare video, preferisco usare Youtube-dl e FFmpeg . Queste due utilità sono appena sufficienti per scaricare video da online e codificare, decodificare, transcodificare, ritagliare e mux i video scaricati. Oggi vedremo come scaricare una parte del video di YouTube con Youtube-dl e FFmpeg in Linux.
Prima di conoscere questo suggerimento, di solito scarico l'intero video utilizzando Youtube-dl e poi lo riduco alla durata desiderata utilizzando FFmpeg come mostrato di seguito.
Per scaricare un video, farei:
$ youtube-dl <youtube-link>
E quindi ritaglia il video scaricato utilizzando l'ora di inizio e di fine del video clip secondo i miei gusti con FFmpeg usando il comando:
$ ffmpeg -i input_video.mp4 -ss 00:01:00 -to 00:03:00 -c copy output_video.mp4
Questo è quello che stavo facendo per ottenere solo una parte del video. Se segui ancora questo metodo per scaricare e tagliare i video, non preoccuparti. Conosco leggermente un modo migliore per scaricare parti del video di YouTube invece del video completo. Continua a leggere!
Scarica una porzione di video di Youtube con Youtube-dl e FFmpeg
Per prima cosa, vedremo come scaricare una parte specifica del video di YouTube utilizzando lo script Youtube-dl.
Ai fini di questa guida, utilizzerò questo video dal canale YouTube ufficiale del nostro OSTechNix blog. Questo video dura 2:43 minuti e mostra sostanzialmente come avviare i browser Web in modalità a schermo intero in Linux.
Se non hai ancora installato Youtube-dl sulla tua macchina Linux, fai riferimento ai link allegati nel primo paragrafo.
Youtube-dl ha il --postprocessor-args
parametro per scaricare una parte specifica di un video o video di YouTube da diversi altri siti Web.
Per scaricare una parte di un video con Youtube-dl, esegui:
$ youtube-dl --postprocessor-args "-ss 00:01:00 -to 00:02:00" "https://www.youtube.com/watch?v=dc7I-i7sPrg"
Qui, --ss 00:01:00
è l'ora di inizio del video e -to 00:02:00
è l'ora della fine. Quindi il comando precedente inizierà la codifica a 1 minuto e terminerà a 2 minuti.
Puoi anche usare -t
flag per specificare la durata totale.
$ youtube-dl --postprocessor-args "-ss 00:01:00 -t 00:00:50" "https://www.youtube.com/watch?v=dc7I-i7sPrg"
La codifica inizierà a 1 minuto e richiederà solo i successivi 50 secondi.
Tieni presente che Youtube-dl scaricherà l'intero video prima di elaborarlo. Dopo aver tagliato il video alla lunghezza indicata, eliminerà il video originale e manterrà solo la parte del video. Se vuoi mantenerli entrambi, passa semplicemente il -k
bandiera.
Se non vuoi scaricare l'intero video ma solo una parte di esso, puoi combinare ffmpeg e youtube-dl per scaricare una parte specifica del video di YouTube come di seguito:
$ 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"
Qui abbiamo usato -f best
segnala per scaricare la migliore qualità audio e video.
Il comando precedente scaricherà il video di Youtube fornito con lo script Youtube-dl, quindi lo taglierà a partire da 1 minuto e finirà a 2 minuti.
Ecco un'altra versione del comando che fa lo stesso lavoro.
$ 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
Questo comando fa lo stesso del comando precedente ma salva il video di output come "kiosk.mp4".
Aggiornamento:
Come ha commentato uno dei nostri lettori di seguito, se il suggerimento sopra non funziona per qualsiasi motivo, basta aggiungi decimali dopo i secondi come "-ss 00:01:00.00 -to 00:02:00.00
" invece di "-ss 00:01:00 -to 00:02:00
". Tuttavia, non l'ho testato personalmente. Tuttavia, il lettore afferma che funziona.
Spero che questo aiuti.
Riferimento
Immagine in primo piano di kapil 99 da Pixabay .