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 :
[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'
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 ;)
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" |
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 |
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é. |
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).
La méthode rapide utilise le “input seeking”.
ffmpeg -i input.mp4 -ss 00:04:40 -to 01:25:37 -c copy output.mp4
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