Per a evitar problemes, eliminar el símbol '
(Ubuntu)
for file in *\'*; do mv "$file" "${file//\'/}"; doneExtreure subtítols
ffmpeg -i Movie.mkv -map 0:s:0 subs.srtFer-ho amb tot el directori
Escriure cmd i després
for i in *.mkv; do ffmpeg -i "$i" -map 0:s:0 "${i%.*}.srt"; donefor %i in (*.mkv) do ffmpeg -i "%i" -map 0:s:0 "%~ni.srt"Traduir els subtítols
Integrar subtítols
(Ubuntu)
cd /mnt/f/Masterclass/Artistic/Music/Integrar la pista de subtítol:
for video in *.mkv; do
base="${video%.*}"
ffmpeg -i "${video}" -i "${base}.srt" -c copy -scodec srt -map 0 -map 1 "${base}_sub.mkv"
doneEl mateix però amb el nom “Català”:
for video in *.mkv; do
base="${video%.*}"
ffmpeg -i "${video}" -i "${base}.srt" -map 0 -map 1 -c copy -scodec srt -metadata:s:s:1 title=Català "${base}_sub.mkv"
doneEliminar el “sub”
- Compta si hi ha el mateix número de nous i antics.
- Elimina tots els arxius antics (ordenar per data i eliminar els antics, els que no tenen “sub”).
- Executa la comanda:
for file in *_sub.mkv; do mv "$file" "${file//_sub/}"; doneCrear un arxiu .vtt per cada vídeo .mp4
Nota
Si els tipus de subtítols o vídeos són diferents només cal canviar l’extensió.
for video in *.mp4; do
touch "${video%.mp4}.vtt"
doneCrear una llista dels enllaços .vtt a partir dels arxius de les pàgines descarregades
Important
Cal que els arxius hagin estat descarregats en ordre, perquè segueix l’ordre de creació.
#!/bin/bash
# Defineix el directori on es troben els fitxers
directori="/mnt/f/BBC Maestro/Brian Cox - Acting/html/"
# Crea o buida l'arxiu de sortida
arxiu_sortida="enllacos_vtt.txt"
> "$arxiu_sortida"
# Array per emmagatzemar enllaços únics
declare -a enllacos_unics=()
# Obtenir llista d'arxius ordenats per data de creació/modificació
# Nota: Això utilitza la data de modificació; la data de creació pot no estar disponible
arxius=$(ls -lt "$directori" | grep -v '^total' | awk '{print $9}')
# Bucle per a cada arxiu en l'ordre de data
for arxiu in $arxius; do
while IFS= read -r enllac; do
# Afegeix només enllaços únics a l'array
if [[ ! " ${enllacos_unics[*]} " =~ " ${enllac} " ]]; then
enllacos_unics+=("$enllac")
fi
done < <(grep -o 'https://[^ ]*\.vtt' "$directori/$arxiu")
done
# Escriu els enllaços en l'arxiu de sortida amb el seu número d'ordre
for i in "${!enllacos_unics[@]}"; do
printf "%02d\n%s\n" "$i" "${enllacos_unics[$i]}" >> "$arxiu_sortida"
done