Table des matières
Lire / Télécharger Youtube
Lire Youtube
On peut facilement lire des vidéos avec le lecteur mpv, comme ceci par exemple :
mpv https://www.youtube.com/watch?v=Ut6d6SaS3e4
Par contre, il se peut que la résolution de la vidéo vous bouffe toute votre petite bande passante misérable… alors pas de panique, voici la solution :
- ~/.config/mpv/mpv.conf
[1080p] ytdl-format=bestvideo[height<=?1080]+bestaudio/best [720p] ytdl-format=bestvideo[height<=?720]+bestaudio/best [480p] ytdl-format=bestvideo[height<=?480]+bestaudio/best [360p] ytdl-format=bestvideo[height<=?360]+bestaudio/best
Je vous propose aussi d'insérer ces alias dans votre .bashrc :
alias ytmpv1080='mpv --profile=1080p' alias ytmpv720='mpv --profile=720p' alias ytmpv480='mpv --profile=480p' alias ytmpv360='mpv --profile=360p'
Télécharger Youtube
Mais en voilà un wiki intéressant :p sachez que grâce à l'outil yt-dlp (dispos dans une majorité de dépots officiels, mais aussi avec python-pip) vous pouvez télécharger n'importe quelle vidéo de youtube dans n'importe quel format :)
Quelques exemples
yt-dlp URL # télécharge la vidéo URL comme elle est. Donc résolution audio/video au max yt-dlp -x --audio-format mp3 URL # télécharge la vidéo au format mp3 (conversion avec ffmpeg) yt-dlp -F URL # liste tous les format disponibles pour la vidéo yt-dlp -f 22 URL # télécharge la vidéo dans le format n°22 listé précédemment yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" URL # Numérote les titres téléchargés dans l'ordre de la playlist, et les met dans un dossier portant le nom de la playlist yt-dlp -x --audio-format mp3 -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" URL # Combinaison permettant de télécharger une playlist complète au format mp3 (+numérote +dossier avec le nom de la playlist)
Enjoie ;)
Convertion Video / Audio
type convertion | Commande |
---|---|
Caméscope MTS → MKV | ffmpeg -threads 8 -i "file.MTS" -codec:s copy -codec:v libx264 -codec:a copy "file.mkv" |
WebM → MP3 | ffmpeg -i "file.webm" -vn -ab 128k -ar 44100 -y "file.mp3" |
mp3/m4a → wav | ffmpeg -i "file.mp3/m4a" "file.wav" |
mp4 → mp3 | ffmpeg -i "file.mp4" "file.mp3" |
m4a → mp3 | ffmpeg -i "file.m4a" -acodec libmp3lame -ab 128k "file.mp3" |
wav → mp3 | ffmpeg -i "file.wav" -acodec libmp3lame -ac 2 -ar 44100 -ab 256k -f mp3 "file.mp3" |
mkv → mp4 | ffmpeg -i "file.mkv" -c copy "file.mp4" |
Boucle for pour convertir un ensemble de fichiers
Pour faire une convertion d'un ensemble de fichier, on utilise for. On récupère la commande dans le tableau au dessus, qu'on insère juste après for file in *.ext_in; do (en remplaçant .ext_in par l'extension source qui nous intéresse), à la place du file.ext_in source on met “$file”, à la place du file.ext_out destination on met “${file%.ext_in}.ext_out” et on ajoute ; done.
Je refais quand même un petit tableau :
type convertion | Commande avec une boucle for pour traiter plusieurs fichiers |
---|---|
Caméscope MTS → MKV | for file in *.mts; do ffmpeg -threads 8 -i "$file" -codec:s copy -codec:v libx264 -codec:a copy "${file%.mts}.mkv"; done |
WebM → MP3 | for file in *.webm; do ffmpeg -i "$file" -vn -ab 128k -ar 44100 -y "${file%.webm}.mp3"; done |
mp3/m4a → wav | for file in *.mp3/m4a; do ffmpeg -i "$file" "${file%.mp3/m4a}.wav"; done |
mp4 → mp3 | for file in *.mp4; do ffmpeg -i "$file" "${file%.mp4}.mp3"; done |
m4a → mp3 | for file in *.m4a; do ffmpeg -i "$file" -acodec libmp3lame -ab 128k "${file%.m4a}.mp3"; done |
mkv → mp3 | for file in *.mkv; do ffmpeg -i "$file" -vn -c:a libmp3lame "${file%.m4a}.mp3"; done |
mkv → mp4 | for file in *.mkv; do ffmpeg -i "$file" -c copy "${file%.mkv}.mp4"; done |
Réduire la résolution
ffmpeg -y -r 20 -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4
-y | écrase si le fichier de sortie existe déjà |
-r | définir un nombre de FPS |
-vf “scale=iw/2:ih/2” | réduit de moitié (/2) la largeur (iw) et la hauteur (ih). Ce nombre peut etre augmenté. |
Recouper une vidéo (trim)
Attention il existe 2 méthodes pour couper une vidéo : une rapide et approximative (sans réencodage), et une lente et précise (avec réencodage).
Rapide approximative
La méthode rapide utilise le “input seeking”.
ffmpeg -i input.mp4 -ss 00:04:40 -to 01:25:37 -c copy output.mp4
- -ss spécifie le marqueur de départ
- -to spécifie le marqueur de fin
- -c copy spécifie d'utiliser le codec audio et vidéo identique à la source
Lente précise
La méthode précise est lente car elle réencode toute la vidéo. Mais cela nous permet de la recouper de façon très précise.
ffmpeg -i input.mp4 -ss 00:02:09 -to 00:29:17 -c:v libx264 -c:a copy output.mp4
- -ss spécifie le marqueur de départ
- -to spécifie le marqueur de fin
- -c:v spécifie le codec vidéo (libx264 dans l'exemple)
- -c:a spécifie le codec audio (copy dans l'exemple, qui reprend le codec source)