Caméra avec flux audio

Bonjour à tous, bonjour Nebz,

J’ai parcouru pas mal de sujets, et internet, mais jusqu’ici je n’ai pas réussi à rajouter les flux audio sur mes caméras dans Homekit. Je profite donc de ce confinement pour faire appel à vous :slight_smile:. Je vais essayer d’être exhaustif et de remettre ici tous mes tests.

Tout d’abord mon environnement:

  • NUC Intel, VM Debian 9

Mon flux RTSP passe par Synology, et depuis VLC, j’ai bien les 2 flux qui apparaissent (audio et video).

Dans HomeKit, la caméra fonctionne bien (depuis assez longtemps, mais sans audio). Mon but ici est donc de rajouter l’audio.

Voici la configuration dans Jeedom

{
    "platform": "Camera-ffmpeg",
    "cameras": [
        {
            "name": "Camera Garage A9",
            "videoConfig": {
                "source": "-rtsp_transport tcp -re -i rtsp://xxx:yyy@192.168.1.xx:554/Sms=ID.unicast",
                "stillImageSource": "-rtsp_transport tcp -re -i rtsp://xxx@192.168.1.xx:554/Sms=ID.unicast -updatefirst",
                "maxStreams": 2,
                "maxWidth": 1920,
                "maxHeight": 1080,
                "maxFPS": 15,
                "vcodec": "h264",
                "audio": true,
                "debug": true,
                "acodec": "libopus"
            }
        }
    ]
}

Test de la commande :
ffmpeg -encoders
Résultats (j’ai pris que la partie intéressante, d’après un autre post):

 A..... libopus              libopus Opus (codec opus)
 A..... pcm_alaw             PCM A-law / G.711 A-law

Une idée ? Je me dis que c’est peut être un truc « tout bête ».
J’ai tenté d’analyser les logs en debug, mais j’avoue ne pas voir de message d’erreur ou autre de très explicite.

Merci !

bonjour, tu as tenté le paramètre mapaudio et mapvideo pour t’assurer qu’il prenne bien le bon flux ?

mapvideo Select the stream used for video, default 0:0
mapaudio Select the stream used for audio, default 0:1

Testé à l’instant mais sans succès, je n’ai que la vidéo.

Voici le json :

{
    "platform": "Camera-ffmpeg",
    "cameras": [
        {
            "name": "Camera Garage A11",
            "videoConfig": {
                "source": "-rtsp_transport tcp -re -i rtsp://xxx:yyy@192.168.1.xx:554/Sms=ID.unicast",
                "stillImageSource": "-rtsp_transport tcp -re -i rtsp://xxx:yyy@192.168.1.xx:554/Sms=UD.unicast -updatefirst",
                "maxStreams": 2,
                "maxWidth": 1920,
                "maxHeight": 1080,
                "maxFPS": 15,
                "vcodec": "h264",
                "audio": true,
                "debug": true,
                "acodec": "libopus",
                "mapvideo":"0:0",
                "mapaudio":"0:1"
            }
        }
    ]
}

et tu as testé si tes flux sont bien sur ce mapping ? via VLC tu entends l’audio sur le flux #1 ?

autre chose, rien à voir, tu es certain de cette ligne ?

tu ne dois pas ajouter : -vframes 1 -r 1 pour ne prendre qu’une seule frame ?

pour info cette ligne n’est pas obligatoire, tu peux l’oublier dans ton cas précis ce n’est pas utile, le plugin est devenu assez intelligent pour capturer directement l’image dans le flux lui-meme, c’est plus adéquat dans ton cas précis ou tu utilises la meme url dans le flux et la capture.

Yes Sir, sauf si on ne parle pas de la même chose :

Pour ta 2e question : je me suis basé sur ce post : Homebridge et Camera-ffmpeg - #10 par mguyard
Et cette configuration Surveillance Station Tested Configuration · Sunoo/homebridge-camera-ffmpeg Wiki · GitHub et ça fonctionne bien en vidéo

ca me semble bon… peut-etre poster la question sur le github de homebridge-camera-ffmpeg ?

il faudra leur poster le log à mon avis… je te conseille de passer homebridge en « Info » mais de garder ton debug:true dans ta cam, tu auras un log plus clean.

pour info c’est @mguyard qui a posté ca :slight_smile: il pourra peut-etre t’aider s’il a implémenté l’audio ?

1 « J'aime »

Bonjour,

Désolé mais les 2 cameras que j’ai ajouté dans Homebridge n’ont pas d’audio.

Dommage, merci quand même !

Je vais aller poster une question sur le github alors, merci encore Nebz :slight_smile:

1 « J'aime »

Nickel, n’hésite pas à nous faire un retour :wink:

bonjour

il faut ajouter à la suite le flux vidéo et le flux audio dans la ligne source

C’est à dire ? J’avoue ne pas comprendre juste comme ça

j’ai vu sur la page officielle dans l’onglet "tester configurations qu’il y a des config un peu plus complexe

{
  "platform": "Camera-ffmpeg",
  "cameras": [
    {
      "name": "Nursery Camera",
      "videoConfig": {
        "source": "-xerror -rtsp_transport tcp -i rtsp://username:password@10.0.1.5/cam/realmonitor?channel=1&subtype=0 -c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast",
        "stillImageSource": "-i http://username:password@10.0.1.5/cgi-bin/snapshot.cgi",
        "maxStreams": 2,
        "maxWidth": 1280,
        "maxHeight": 720,
        "maxFPS": 30
      }
    }
  ]
}

dans cet exemple dans « source » il y deux partie.
la première fait référence au flux audio

 "source": "-xerror -rtsp_transport tcp -i rtsp://username:password@10.0.1.5/cam/realmonitor?channel=1&subtype=0 -c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast",
        

la deuxième partie fait référence au flux audio

-c:a aac -b:a 128k -c:v libx264 -b:v 2500k -preset superfast

faut juste décoder tout ce beau monde et comprendre ce qu’il faut mettre exactement

encore un autre exemple

"source":"-re -i http://src/video -i http://src/audio.opus"
1 « J'aime »

oui mais cet exemple c’est quand le flux audio est dans une autre URL, ce qui n’est pas son cas

en fait il n’y a que ces deux là pour l’audio, le premier c’est équivalent au codec audio (donc au param acodec qu’il utilise déjà) et le second à max_bit_rate qui peut être mis comme paramètre aussi mais pas vraiment utile

le preset c’est la qualité de la compression, pas sur que ca change grand chose dans son cas

est-ce que les deux flux sont bien différents?

d’après son image oui

je pense qu’il y a un problème probablement dans la lecture ou le réencodage de l’audio… peut-etre qu’il faut préciser stereo ou qqch comme ca… mais je ne m’y connais pas assez en ffmpeg pour aller aussi loin

peut etre aussi le param sample_rate qui permettrait de donner le 16 en question ?

edit:c’est en milliers donc 16 et c’est la valeur par défaut donc pas besoin