===== 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 :
[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)