IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Multimédia Discussion :

Comment enregistrer image et son avec ffmpeg ?


Sujet :

Multimédia

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 933
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 933
    Points : 15 381
    Points
    15 381
    Par défaut Comment enregistrer image et son avec ffmpeg ?
    Bonjour,

    c'est encore moi et mes problèmes de son.

    Je la fais courte et simple : je veux utiliser ffmpeg pour enregistrer un bout de film en train d'être joué sur ma machine (Linux Debian 11.9), et en regardant le man, je trouve ça, au chapitre AVOptions option -c :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For example
            ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
    encodes all video streams with libx264 and copies all audio streams.
    Je m'inspire donc de cet exemple pour construire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ffmpeg -hide_banner -f x11grab -s 1366x768 -i :0.0 -r 25 -c:v libx264 -c:a copy [ou pulse ou alsa ou openal] output.mp4
    et tout va bien sauf que je n'ai pas de son...

    Alors la question qui tue est simple : est-ce que cette commande est valide ?

    Protocole de test : je fais jouer une vidéo avec mon lecteur mpv, et je lance la commande, que j'arrête avec "Q" au bout de qq secondes, ça génère un fichier que je fais jouer par un autre lecteur et si j'y ai l'image, je n'y ai pas le son !
    Je fais un autre test : si pendant la lecture j'utilise un petit enregistreur de son autonome, il fonctionne, donc le son ne se perd pas, mais ce que je remarque avec l'outil "Contrôle du volume" de PulseAudio, c'est que si je lance l'enregistrement avec le petit outil ça fait apparaitre un curseur de volume en bas ("Monitor of..."),
    Nom : during_record.jpg
Affichages : 233
Taille : 143,8 Ko

    que je ne vois pas quand j'enregistre avec ffmpeg.
    Nom : without_record.jpg
Affichages : 226
Taille : 52,9 Ko

    La blague doit se situer dans ce coin-là, comme si ffmpeg ne détectait pas le son ou le périph qui le gère mais là je suis à court d'idées et de compétence...

    Une idée ? Grand merci par avance,

    EDIT : je viens de trouver ça, dans un lecteur, à propos des propriétés du fichier, section audio :
    Nom : propriétés_fic_SMPlayer.png
Affichages : 217
Taille : 9,3 Ko

    Si tout est à 0, on ne risque pas d'entendre de la musique,

  2. #2
    Membre à l'essai
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mars 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chargé de référencement

    Informations forums :
    Inscription : Mars 2024
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Comment enregistrer image et son avec ffmpeg ?
    Bonjour,

    La commande que vous utilisez avec ffmpeg ne spécifie probablement pas correctement la source audio. Pour capturer le son, ajustez la commande pour inclure le périphérique audio PulseAudio. Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ffmpeg -hide_banner -f x11grab -s 1366x768 -i :0.0 -r 25 -f pulse -ac 2 -i default -c:v libx264 -c:a aac output.mp4
    Cette version inclut -f pulse -ac 2 -i default pour capturer l'audio depuis PulseAudio, généralement à partir du périphérique "default". Si le son n'est toujours pas capturé, utilisez pavucontrol pour vérifier que ffmpeg capture bien à partir du bon périphérique audio.

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 933
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 933
    Points : 15 381
    Points
    15 381
    Par défaut
    Bonjour,
    Citation Envoyé par Romy23 Voir le message
    La commande que vous utilisez avec ffmpeg ne spécifie probablement pas correctement la source audio. Pour capturer le son, ajustez la commande pour inclure le périphérique audio PulseAudio. Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ffmpeg -hide_banner -f x11grab -s 1366x768 -i :0.0 -r 25 -f pulse -ac 2 -i default -c:v libx264 -c:a aac output.mp4
    Cette version inclut -f pulse -ac 2 -i default pour capturer l'audio depuis PulseAudio, généralement à partir du périphérique "default". Si le son n'est toujours pas capturé, utilisez pavucontrol pour vérifier que ffmpeg capture bien à partir du bon périphérique audio.
    J'ai utilisé la nouvelle ligne de commande et bien sûr, nous sommes dans le monde PulseAudio, ça n'a rien changé je n'ai pas de son enregistré et ça me saoule au plus haut point et ça me fait perdre un temps dément...

    Alors le problème vient certainement de l'onglet "Périphériques d'entrée" où je trouve bien une option "Port" mais qui ne me propose que 3 choix,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Line In (plugged in)
    Front Microphone (unplugged)
    Rear Microphone (unplugged)
    et rien n'est modifiable à part ça.

    Sur l'onglet "Configuration" j'ai Duplex Stéréo Analogique en profil.

    Et en fait, la solution se trouvait planquée dans l'onglet Enregistrement et il me fallait choisir
    Nom : pulseaudio_recorder.png
Affichages : 56
Taille : 31,9 Ko

    Si encore, dans ce genre de choix, on voyait tout, ça serait facile et évident mais non, il faut cliquer sur un truc pour voir ce qui se cache dessous, .
    Pas demain la veille que les ihm's remplaceront les vieilles machines des années '70 où on avait tout sous les yeux...

    Merci pour le coup de main, car des lignes de commande pareilles, ça ne s'invente pas, hein !
    Surtout quand on ne fait pas ça tous les jours.

    Maintenant, il y a un énorme souci de rendu des images, qui est épouvantablement saccadé, voir la pj.
    Est-ce que ça a un rapport avec ce que me balance ffmpeg au début de l'enregistrement ?
    Il l'aurait écrit en chinois que ça ne m'aurait pas plus avancé...

    Le début de la console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    ffmpeg -hide_banner -f x11grab -s 1366x768 -i :0.0 -r 25 -f pulse -ac 2 -i default -c:v libx264 -c:a aac /tmp/output.mp4
    [x11grab @ 0x56544e578040] Stream #0: not enough frames to estimate rate; consider increasing probesize
    Input #0, x11grab, from ':0.0':
      Duration: N/A, start: 1723539624.542335, bitrate: 1006118 kb/s
        Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 1366x768, 1006118 kb/s, 29.97 fps, 1000k tbr, 1000k tbn, 1000k tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, pulse, from 'default':
      Duration: N/A, start: 1723539624.591013, bitrate: 1536 kb/s
        Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Stream mapping:
      Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
      Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
    Press [q] to stop, [?] for help
    [swscaler @ 0x56544e59cd00] Warning: data is not aligned! This can lead to a speed loss
    [libx264 @ 0x56544e590840] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 0x56544e590840] profile High 4:4:4 Predictive, level 3.2, 4:4:4, 8-bit
    [libx264 @ 0x56544e590840] 264 - core 160 r3011 cde9a93 - H.264/MPEG-4 AVC codec - Copyleft 2003-2020 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    [pulse @ 0x56544e583f80] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
    Output #0, mp4, to '/tmp/output.mp4':
      Metadata:
        encoder         : Lavf58.45.100
        Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv444p(progressive), 1366x768, q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc
        Metadata:
          encoder         : Lavc58.91.100 libx264
        Side data:
          cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
        Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
        Metadata:
          encoder         : Lavc58.91.100 aac
    [x11grab @ 0x56544e578040] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
    [aac @ 0x56544e5923c0] Queue input is backward in time03.60 bitrate=   0.1kbits/s dup=144 drop=5 speed=1.35x    
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 106512, current: 104872; changing to 106513. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 106513, current: 104987; changing to 106514. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 106514, current: 105597; changing to 106515. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 106515, current: 106406; changing to 106516. This may result in incorrect timestamps in the output file.
    [aac @ 0x56544e5923c0] Queue input is backward in time17.68 bitrate= 711.5kbits/s dup=448 drop=11 speed=0.993x    
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 841194, current: 840607; changing to 841195. This may result in incorrect timestamps in the output file.
    [mp4 @ 0x56544e58f280] Non-monotonous DTS in output stream 0:1; previous: 841195, current: 840796; changing to 841196. This may result in incorrect timestamps in the output file.
    frame=  629 fps= 30 q=29.0 Lsize=    2082kB time=00:00:20.88 bitrate= 816.7kbits/s dup=495 drop=11 speed=1.01x    
    video:1749kB audio:304kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.391997%
    et ensuite ça a l'air de se calmer.
    Mais le film dure une heure et je n'ai pas trop le temps, là, de rester planté devant à regarder si ça s'arrange.
    De toute façon, si le début est pourri (alors que la vidéo est parfaite), je suis bien obligé de tout jeter.

    Le test (zippé parce que .mp4 n'est pas accepté) en pj (2 Mo)
    output.mp4.zip
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre à l'essai
    Femme Profil pro
    Chargé de référencement
    Inscrit en
    Mars 2024
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chargé de référencement

    Informations forums :
    Inscription : Mars 2024
    Messages : 8
    Points : 10
    Points
    10
    Par défaut Comment enregistrer image et son avec ffmpeg ?
    Donc, il semble que ce soit un problème de synchronisation. Essayez d'ajuster le débit binaire et d'optimiser les paramètres d'encodage pour améliorer la fluidité de la vidéo.

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 933
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 933
    Points : 15 381
    Points
    15 381
    Par défaut
    Je ne sais pas faire, dans le sens où je ne sais pas quels paramètres trifouiller ni quelles valeurs y mettre...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Images et Sons avec clavier
    Par LEA LANG dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/04/2019, 10h53
  2. Réponses: 2
    Dernier message: 05/01/2012, 21h38
  3. Réponses: 0
    Dernier message: 26/05/2009, 22h23
  4. comment enregistrer un fichier excel avec le vba
    Par zaki_1982 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/04/2008, 18h09
  5. enregistrer image sur disque avec URL
    Par meufeu dans le forum Langage
    Réponses: 8
    Dernier message: 26/10/2005, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo