Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/09/2022, à 14:48

Hilderik

FFmpeg

Bonjour,

quelqu'un connaîtrait-il un tutoriel simple pour utiliser ce convertisseur svp ?

ici:  https://itsfoss.com/ffmpeg/#basic-usage, cela n'est pas clair pour moi.

Quand il est indiqué une commande comme :

ffmpeg -i video_file.mp4 
ffmpeg -i audio_file.mp3

Difficile de comprendre comment convertir un fichier video placé /home/Documents/ et comment inscrire la commande avec son nom....

Merci.

PS: j'essaie de mixer un son et une vidéo.

Hors ligne

#2 Le 09/09/2022, à 15:09

hotnuma

Re : FFmpeg

Quelque chose comme :

ffmpeg -i video_file.mp4 -i audio_file.mp3 -map 0:0 -map 1:0 -c copy output.mp4

Ça doit réunir les deux flux dans le même conteneur avec une simple copie sans ré-encodage.

tongue


Xubuntu / GitHub

Hors ligne

#3 Le 09/09/2022, à 15:19

iznobe

Re : FFmpeg

Salut , on ne peut pas dire que tu commences par une commande simple a prendre en main , alors que tu ne connais pas la manière dont indiqué un chemin vers un fichier ...

je veux pas te decourager mais il serait certainement plus facile de commencer avec nimporte quel autre commande basique .

Bref , le schema de base de la commande est indiqué tout en haut du lien que tu fournis , le voici :

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...

Toutes les parties entre crochets : [  ] comporte plusieurs valeurs possibles qui sont parfois ajoutables ou pas ...
les parties entre accolade {  } sont ,  je pense , facultative .
par exemple , on pourrait mettre :

ffmpeg  global_options1,global_options2,global_options3  input_file_options1,input_file_options2,input_file_options3  -i input_url    output_file_options1,output_file_options2,output_file_options3  output_url

les chemins de fichiers peuvent être indiqués de 2 manières:
chemin relatif ou chemin absolu .

quand tu fais dans le terminal

cd Documents

tu vas déplacer le dossier sur lequel travaille le terminal  dans Documents .
un chemin relatif ne commencepas toujours par " / " . ( mais restons simple pour le moment voir en bas * )
dans la commande " cd " ci-dessus " Documents " est un paramètre qui indique un chemin relatif a la commande CD
ca veut dire qu ' il se basse sur l ' emplacement ou est déjà situé le terminal ( en general ton $HOME si tu viens d' ouvrir un terminal ) .

un chemin absolu commence toujours par " / "  c ' est le sommet de tous chemins dans l' arborescence on ne peut pas monter plus .
on appelle ca le dossier racine du systeme . ( chez windob ilzappellent ca C: ) .
Avec un chemin absolu , impossible donc de se retrouver ailleurs que la ou point le chemin .

imaginons que dans ton Dossier perso tu aies Documents ( et tout les autres ) dans Documents tu as par exemple un dossier Vidéos .
si tu ouvres un terminal et que tu tapes :

cd Vidéos

tu vas te retrouver en équivalent chemin absolu dans /home/ton_pseudo/Vidéos .
si tu ouvres un terminal et que tu tapes :

cd Documents
cd Vidéos

tu vas te retrouver en equivalent chemin absolu dans /home/ton_pseudo/Documents/Vidéos .
ton repertoire de travail du terminal ne sera donc pas le meme .

Pour en revenir a la base de ta question , imaginons que la video sur laquelle tu desires travailler est dans Vidéos ( du dossier perso ) , alors tu as 2 façon de proceder :
1°) en chemin relatif :
placer le terminal dans le bon repertoire de travail , puis indiquer la commande avec un chemin relatif au fichier a traiter :
cd Vidéos

ffmpeg -i ma_video_file.mp4 # que je veux extraire le machin 

2°) en chemin absolu :

ffmpeg -i /home/ton_pseudo/ma_video_file.mp4 # que je veux extraire le machin 

le resultat sera strictement identique .


NOTE :
on peut tres bien se deplacer dans un repertoire courant et indiqué des chemins absolus de fichiers aux commandes .



* on peut utiliser des chemins relatifs indiquant d' abord un dossier .
si je reprends l ' exemple du dossier Vidéos situé dans Documents :
3°) je reste dans le repertoire d' origine ( ton home = /home/ton_pseudo )
si je fais :

ffmpeg -i /Documents/Vidéos/ma_video_file.mp4 # que je veux extraire le machin 

cela fonctionnera aussi .
comme tu es dans ton home : /home/ton_pseudo et que le chemin relatif indiqué est : Documents/Vidéos/ma_video_file.mp4
la commande comprend alors que le fichier a aller chercher a pour chemin absolu :  /home/ton_pseudo/Documents/Vidéos/ma_video_file.mp4

Dernière modification par iznobe (Le 09/09/2022, à 15:35)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#4 Le 09/09/2022, à 15:42

MicP

Re : FFmpeg

Bonjour

Quand un nom de fichier est donné sans son chemin absolu ou son chemin relatif,
c'est que ce fichier se trouve dans le répertoire courant.

C'est pour ça qu'on demande sur les forums des retours de commandes complets,
car le répertoire courant est affiché dans le prompt et on n'a pas besoin de demander ensuite depuis quel répertoire a été lancée la commande.

=======
Par exemple dans le prompt suivant :

michel@deb114x:~$ 

ce prompt m'indique que le nom de hostname du système est deb114x
ce prompt m'indique aussi que le compte utilisateur est michel
ce prompt m'indique par le caractère $ que le compte utilisateur michel est un compte utilisateur non privilégié
ce prompt m'indique par le caractère ~ que le répertoire courant est le répertoire personnel du compte utilisateur michel
et comme le répertoire personnel des comptes utilisateurs non privilégiés est créé dans le répertoire /home/
alors, le chemin absolu du répertoire courant est /home/michel/

Au final, rien qu'en lisant ce prompt, on a déjà beaucoup d'informations souvent indispensables concernant le contexte dans lequel la commande qui suivra sera lancée.

et avec cet autre exemple de prompt :

michel@deb114x:~/Documents$ 

et ce que j'ai écrit plus haut, on peut déduire que le répertoire courant est /home/michel/Documents/

=======
Si j'écris que je lance la commande suivante :

cat monfichier.txt

mais que je ne donne pas un copié/collé complet (dans lequel le prompt serait affiché)
on ne pourra jamais savoir si le contenu du fichier qui va s'afficher est celui du fichier :

/home/michel/monfichier.txt

ou alors, si c'est le contenu du fichier :

/home/michel/Documents/monfichier.txt

ou alors, si c'est le contenu du fichier :

/etc/monfichier.txt

=======
Si je voulais faire s'afficher le contenu du fichier

/home/michel/Documents/monfichier.txt

et que le répertoire courant était le répertoire personnel de mon compte utilisateur michel,
alors je pourrais spécifier à la commande le chemin relatif ( <=> relatif au répertoire courant)
en lançant la ligne de commande suivante :

cat Documents/monfichier.txt

Mais si au moment où je lance la commande, le répertoire courant n'est pas le répertoire personnel de mon compte utilisateur michel,
et que ce répertoire courant est /home/michel/Documents
alors cette même ligne de commande :

cat Documents/monfichier.txt

n'affichera pas le contenu du fichier que j'espérais pouvoir faire s'afficher,
puisque la commande va alors chercher à afficher le contenu d'un fichier (s'il existe à cet endroit)
dont le chemin absolu serait :

/home/michel/Documents/Documents/monfichier.txt

=======
Mais depuis n'importe quel répertoire courant,
et pour être sûr que ce soit bien le fichier /home/michel/Documents/monfichier.txt qui sera pris en compte par la commande cat (et ce serait la même chose pour n'importe quelle autre commande)
je pourrais simplement utiliser le chemin absolu de ce fichier
en lançant la ligne de commande suivante :

cat /home/michel/Documents/monfichier.txt

=======
Ces concepts de chemin absolu, chemin relatif, de répertoire courant et de répertoire personnel du compte utilisateur
font partie d'une base indispensable que tout utilisateur d'un système Linux est censé connaître.

… et si dans un tuto on devait tenir compte de tous les endroits possibles où les utilisateurs pouvaient avoir mis leurs fichiers,
les tutos résultants seraient très très long et très très difficile à écrire, et encore plus difficile à lire et à comprendre.

Dernière modification par MicP (Le 09/09/2022, à 15:51)

Hors ligne

#5 Le 09/09/2022, à 15:47

alh54

Re : FFmpeg

Difficile de comprendre comment convertir un fichier video placé /home/Documents/ et comment inscrire la commande avec son nom....

Le chemin /home/Documents n'est pas correct, c'est plutôt /home/Hilderik/Documents ou ~/Documents
Déjà tu dois te placer dans le répertoire de travail, dans ton cas c'est  ~/Documents

cd ~/Documents

Ensuite tu liste le contenu de ce répertoire avec la commande ls

ls

tu copies le nom du fichier à convertir (pour ne pas faire de faute de frappe) et tu exécutes ffmeg pour convertir(en collant le nom du fichier), par exemple:

ffmeg -i mes_vacances_d_ete.mp4 mes_vacances_d_ete.avi

------
Edit: grillé par MicP

Dernière modification par alh54 (Le 09/09/2022, à 15:49)

Hors ligne

#6 Le 09/09/2022, à 15:49

iznobe

Re : FFmpeg

bon be là , il est servi tongue

Courage Hilderik big_smile


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#7 Le 09/09/2022, à 16:07

MicP

Re : FFmpeg

alh54 a écrit :

… Edit: grillé par MicP …

Pas tant que ça, puisque tu complètes mon message en utilisant l'expansion du caractère tilde ~
qui, quand on utilise un shell bash, peut être utilisé pour spécifier le nom du répertoire personnel du compte utilisateur qui a lancé ce shell bash

=======
Donc, si le compte utilisateur michel a ouvert un shell bash (par défaut, c'est le shell bash qui interprète les lignes de commandes que vous entrez dans une fenêtre de terminal)
et s'il veut utiliser la commande cat pour faire s'afficher le contenu du fichier dont le chemin absolu est : /home/michel/Documents/monfichier.txt
depuis son compte utilisateur (michel), il pourrait spécifier ce chemin absolu en entrant simplement :

cat ~/Documents/monfichier.txt

ce qui est équivalent (pour le compte utilisateur michel) à :

cat /home/michel/Documents/monfichier.txt

Et si le compte utilisateur omer veut utiliser la commande cat pour faire s'afficher le contenu du fichier dont le chemin absolu est : /home/omer/Documents/monfichier.txt
depuis son compte utilisateur (omer), il pourrait spécifier ce chemin absolu en entrant simplement :

cat ~/Documents/monfichier.txt

ce qui est équivalent (pour le compte utilisateur omer)  à :

cat /home/omer/Documents/monfichier.txt

Dernière modification par MicP (Le 09/09/2022, à 16:32)

Hors ligne

#8 Le 13/09/2022, à 14:36

Hilderik

Re : FFmpeg

Bonjour,
merci à tous pour vos réponses.

J'ai essayé avec la méthode la plus simple (message 5) qui forcement ne fonctionne pas (car je suppose que le logiciel ne comprend pas ce que je lui demande).

~/Documents$ ffmpeg -i lafeteauvillage.mp4 cesttroplateuf.mp4
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
ile: No such file or directory

PS: les deux fichiers sont en mp4 mais l'un est la vidéo, l'autre le fichier sonore.
En revanche je ne comprends pas la réponse du logiciel : "No such file directory", il les trouve lorsque je tape ls dans documents.

PS bis: idem si j'ajoute en fin de commande:

-map 0:0 -map 1:0 -c copy output.mp4

Dernière modification par Hilderik (Le 13/09/2022, à 14:44)

Hors ligne

#9 Le 13/09/2022, à 16:44

alh54

Re : FFmpeg

Place-toi dans le répertoire ~/Documents et poste le retour de

ls | grep -iE 'village|lateuf'

Dernière modification par alh54 (Le 13/09/2022, à 16:46)

Hors ligne

#10 Le 13/09/2022, à 17:38

bonuscad

Re : FFmpeg

Pour utiliser FFmpeg en toute simplicité, tu peux utiliser WinFF

Hors ligne

#11 Le 19/09/2022, à 14:20

Hilderik

Re : FFmpeg

alh54 a écrit :

Place-toi dans le répertoire ~/Documents et poste le retour de

ls | grep -iE 'village|lateuf'

Bonjour,

voici. Cela donne le format des fichiers.....

golgot@Golgot:~/Documents$ ls | grep -iE 'village|lateuf'
village.mp4
lateuf.mp4
golgot@Golgot:~/Documents$ 

Hors ligne

#12 Le 19/09/2022, à 16:05

alh54

Re : FFmpeg

ffmpeg -i lafeteauvillage.mp4 cesttroplateuf.mp4

La réponse est "No such file or directory", c'est qu'il n'y aucun fichier lafeteauvillage.mp4 dans le répertoire Documents.
Et puis cette commande n'est pas la bonne elle va prendre lle 1er fichier en entrée et second en fichier de sortie.
--------------------
listons d'abord les streams des 2 fichiers, place-toi dans le répertoire Documents et poste le retour de:

ffmpeg -i village.mp4 -i lateuf.mp4

D'après ce que j'ai compris village.mp4 contient le stream video et lateuf.mp4 le audio, c'est bien ça?

Dernière modification par alh54 (Le 19/09/2022, à 16:19)

Hors ligne