214 votes

Quoi utiliser pour couper rapidement de l'audio/vidéo

Si je dois simplement recadrer l'audio/la vidéo à partir d'une piste plus longue, que puis-je utiliser? J'ai essayé OpenShot, mais je trouve l'export vidéo lent, peut-être compile-t-il toutes les "couches" dans un nouveau film? Peut-être ai-je juste besoin d'un outil de recadrage simple pour l'audio/la vidéo qui suffira?

1voto

Vidcutter est un outil très utile pour couper, rogner et fusionner des vidéos dans ubuntu:

Installer vidcutter:

sudo add-apt-repository ppa:ozmartian/apps
sudo apt update
sudo apt install vidcutter

fonctionne sous ubuntu 17.10

0voto

mdalacu Points 600

Si vous voulez une application GUI, vous pouvez utiliser dmMediaConverter, un frontend ffmpeg, qui a une fonction de division, sans réencodage, rapide. Il suffit d'ajouter les points de division et d'appuyer sur Exécuter. De plus, il peut faire beaucoup d'autres choses. http://dmsimpleapps.blogspot.ro/2014/04/dmmediaconverter.html Exemple de fonction de division

0voto

jchook Points 196

J'ai écrit un assistant pour ffmpeg qui imite la syntaxe de substr().

Utilisation

ffslice fichier [début [durée [fichier_sortie [arguments_ffmpeg]]]]

Exemples

# Obtenir les 5 dernières minutes d'un MP3
ffslice input.mp3 -5:00

# Obtenir les 30 premières secondes d'un webm
ffslice input.webm 0 30

# Obtenir 5 minutes de vidéo à partir de 2 minutes
ffslice input.mp4 2:00 5:00

Code

#!/bin/bash
# substr() pour les fichiers encodés en MPEG

fichier="$1"; shift
début="$1"; shift
fin="$1"; shift
fichier_sortie="$1"; shift
arguments=()

# Convertir le temps en secondes
# https://unix.stackexchange.com/questions/412868/bash-reverse-an-array
timetosec() {
  rev="$(<<< "$1" tr ':' '\n' | sed 's/^0\+\([0-9]+\)/$1/' | tac | tr '\n' ' ')"
  IFS=' ' read -a times <<< "$rev"
  let secs="${times[0]:-0} + (${times[1]:-0} * 60) + (${times[2]:-0} * 3600)"
  printf '%i' "$secs"
}

# Fichier d'entrée requis
if [ -z "$fichier" ]; then
  echo "Utilisation: $(basename -- "$0") fichier [début [fin [fichier_sortie [arguments_ffmpeg]]]]" >&2
  echo "Exemple: $(basename -- "$0") input.mp3 -5:00" >&2
  exit 1
fi

# Début (les nombres négatifs commencent depuis la fin)
if [ "${début:0:1}" = "-" ]; then arguments+=('-sseof' "$début")
elif [ -n "$début" ]; then arguments+=('-ss' "$début")
fi

# Entrée
arguments+=('-i' "$fichier")

# Fin (utilisez + ou - pour spécifier par rapport au point de départ)
if [ "${fin:0:1}" = "+" ]; then arguments+=('-to' "$fin")
elif [ "${fin:0:1}" = "-" ]; then arguments+=('-sseof' "$fin")
elif [ -n "$fin" ]; then
  let durée="$(timetosec "$fin") - $(timetosec "$début")"
  arguments+=('-to' "$durée")
fi

# Nom de fichier de sortie par défaut
nomfichier=$(basename -- "$fichier")
extension="${nomfichier##*.}"
nomfichier="${nomfichier%.*}"
fichier_sortie_par_defaut="${nomfichier}-${début}-${fin}.${extension}"
if [ -z "$fichier_sortie" ]; then
  fichier_sortie="$fichier_sortie_par_defaut"
elif [ -d "$fichier_sortie" ]; then
  fichier_sortie="${fichier_sortie}/${fichier_sortie_par_defaut}"
fi

# Ne peut pas avoir de deux points dans le nom de fichier avec ffmpeg
# https://unix.stackexchange.com/questions/412519/ffmpeg-protocol-not-found-for-normal-file-name
fichier_sortie="$(printf '%s' "$fichier_sortie" | sed 's/:/./g')"

# Découper l'audio
ffmpeg "${arguments[@]}" -c copy "$@" "$fichier_sortie" 1>&2

# Afficher l'emplacement final
printf '%s' "$(readlink -f "$fichier_sortie")"

Mise en garde

Remarquez que ffmpeg ne fera la découpe qu'aux images clés. Cela fonctionne généralement assez bien pour la plupart des cas, mais si vous avez besoin de segments vidéo précis, consultez Comment extraire des segments vidéo précis avec ffmpeg?. Vous pouvez forcer toutes les images clés nécessaires avant de découper.

0voto

kanehekili Points 2661

Utilisez ceci

entrer la description de l'image ici

Je l'ai écrit pour couper les publicités des vidéos TV enregistrées. En utilisant le remuxer inclus, vous n'avez même pas besoin de le recoder. Il n'y a rien de fantaisiste à ce sujet. Juste rapide.

0voto

cipricus Points 2121

Pour juste recadrer sans transcodage

(copier plutôt), je suggère un script yad à exécuter à partir d'un lanceur de fichiers de bureau.

J'ai trouvé le script ici.

Je l'ai modifié un peu pour inclure les formats vidéo et éviter le transcodage.

Il ressemble à ça:

#!/bin/bash

INPUT=$(yad --width=600 --height=400 --file-selection --file-filter='*.mp3 *.mp4 *.avi *.m4a *.ogg *.flac *.aac *.opus')

eval $(yad --width=400 --form --field=start --field=end --field=output:SFL "00:00:00" "00:00:00" "${INPUT/%.*}-out.${INPUT##*.}" | awk -F'|' '{printf "START=%s\nEND=%s\nOUTPUT=\"%s\"\n", $1, $2, $3}')
[[ -z $START || -z $END || -z $OUTPUT ]] && exit 1

DIFF=$(($(date +%s --date="$END")-$(date +%s --date="$START")))
OFFSET=""$(($DIFF / 3600)):$(($DIFF / 60 % 60)):$(($DIFF % 60))

ffmpeg -ss "$START" -t "$OFFSET" -i "$INPUT" -c copy -map 0 "$OUTPUT"

Donc, installez yad, enregistrez le script sous cut_audio-video.sh et rendez-le exécutable.

Ensuite, créez le fichier ~/.local/share/applications/cut-audio-video.desktop similaire à:

[Desktop Entry]
Name=Couper audio & vidéo
Exec=/CHEMIN/VERS/cut_audio-video.sh
Icon=/QUELQUE/ICONE/Audio-icon.png
Terminal=false
Type=Application
Categories=GNOME;GTK;Paramètres;ParamètresMatériels;X-GNOME-Panel de paramètres;Système;

Modifiez les lignes Exec et Icon.

Ensuite, il peut être exécuté avec un lanceur d'applications comme Synapse:

enter image description here

Sélectionnez le fichier, puis entrez l'heure de début et de fin du découpage/recadrage

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X