Puncte:0

ffmpeg alsa nu poate captura audio de la placa de captură UVC USB HDMI pe serverul HLS

drapel it

în același context înainte, am fost ajutat de frate ( llogan ) pe 15 octombrie la 16:35, folosind sintaxa sugestia lui și am încercat-o, la început am primit sunetul bâlbâit, apoi a revenit la tăcere ,dar din anumite motive nu am mai accesat acest blog de mult timp, deci comunicarea este pierdere, asa ca ma poate ajuta cineva ? starea curentă folosim sintaxa:

ffmpeg -f alsa -channels 2 -sample_rate 44100 -i hw:0 -f video4linux2 -i /dev/video0 -c:a aac -b:a 128k -c:v libx264 -preset veryfast -b:v 4000k -maxrate 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream

și am informații care rulează de la ffmpeg:

[alsa @ 0x556854b35c60] ALSA buffer xrun. 
cadru= 237 fps=5.0 q=13.0 dimensiune= 21447kB timp=00:00:43.23 bitrate=4063.4kbits/s viteza=0.9 
cadru= 239 fps=5.0 q=13.0 dimensiune= 21633kB timp=00:00:43.23 bitrate=4098.6kbits/s viteza=0.9 
[alsa @ 0x556854b35c60] ALSA buffer xrun. 
cadru= 242 fps=5.0 q=13.0 dimensiune= 21932kB timp=00:00:44.23 bitrate=4061.5kbits/s viteza=0.9 
cadru= 244 fps=5.0 q=13.0 dimensiune= 22124kB timp=00:00:44.23 bitrate=4097.1kbits/s viteza=0.9

este ceva în neregulă?, și oprim codificatorul are o informație este:

[flv @ 0x5585283c6a40] Nu s-a putut actualiza antetul cu durata corectă.
[flv @ 0x5585283c6a40] Nu s-a putut actualiza antetul cu dimensiunea corectă a fișierului.
cadru=428826 fps=5,0 q=-1,0 Lsize=40706449kB timp=23:49:20,70 bitrate=3888,1kbits/s viteza=0,958x
video:428826kB audio:767kB subtitrare:0kB alte fluxuri:0kB anteturi globale:0kB muxing overhead: 0,025860%
[libx264 @ 0x5585283c8200] cadru I: 57274 QP mediu: 7,20 dimensiune: 151544
[libx264 @ 0x5585283c8200] cadru P: 263139 QP mediu: 10,57 dimensiune: 96778
[libx264 @ 0x5585283c8200] cadru B:108413 QP mediu:10,50 dimensiune: 69423
[libx264 @ 0x5585283c8200] cadre B consecutive: 63,0% 7,8% 6,5% 22,7%
[libx264 @ 0x5585283c8200] mb I I16..4: 14,2% 12,6% 73,2%
[libx264 @ 0x5585283c8200] mb P I16..4: 12.6% 11.5% 27.5% P16..4: 8.2% 17.2% 20.3% 0.0% 0.0% skip: 2.7%
[libx264 @ 0x5585283c8200] mb B I16..4: 4.2% 2.4% 4.7% B16..8: 23.7% 26.8% 14.9% direct:14.1% skip:9.1% L0:36.9% L.4%BI:34.9% L.41:34.9%
[libx264 @ 0x5585283c8200] 8x8 transform intra:19.5% inter:35.3%
[libx264 @ 0x5585283c8200] codificat y,uvDC,uvAC intra: 83,4% 88,7% 85,2% inter: 78,4% 76,8% 46,4%
[libx264 @ 0x5585283c8200] i16 v,h,dc,p: 45% 40% 10% 5%
[libx264 @ 0x5585283c8200] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 25% 41% 12% 3% 3% 3% 5% 3% 5%
[libx264 @ 0x5585283c8200] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 34% 8% 4% 6% 5% 6% 5% 6%
[libx264 @ 0x5585283c8200] i8c dc,h,v,p: 34% 35% 18% 13%
[libx264 @ 0x5585283c8200] Cadre P ponderate: Y:2,6% UV:1,9%
[libx264 @ 0x5585283c8200] kb/s:3887.06
[aac @ 0x5585283cc760] Qavg: 65536.000
s710@sensorsip:~$

Mai întâi începem mesajul ffmpg este:

s710@sensorsip:~$ ffmpeg -f alsa -channels 2 -sample_rate 44100 -i hw:0 -f video4linux2 -i /dev/video0 -c:a aac -b:a 128k -c:v libx264 -prestat veryfast -b :v 4000k -maxrate 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream
ffmpeg versiunea 3.4.8-0ubuntu0.2 Copyright (c) 2000-2020 dezvoltatorii FFmpeg
  construit cu gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configurație: --prefix=/usr --extra-version=0ubuntu0.2 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libie c61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
  libavutil 55. 78.100 / 55. 78.100
  libavcodec 57.107.100 / 57.107.100
  libavformat 57. 83.100 / 57. 83.100
  libavdevice 57. 10.100 / 57. 10.100
  libavfilter 6.107.100 / 6.107.100
  libavresample 3. 7. 0 / 3. 7. 0
  libswscale 4. 8.100 / 4. 8.100
  libswresample 2. 9.100 / 2. 9.100
  libpostproc 54. 7.100 / 54. 7.100
Aspect canal ghicit pentru fluxul de intrare #0.0 : stereo
Intrare #0, alsa, din „hw:0”:
  Durată: N/A, start: 1635926018.864251, bitrate: 1411 kb/s
    Flux #0:0: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Intrare #1, video4linux2,v4l2, de la „/dev/video0”:
  Durată: N/A, început: 89255.399764, rata de biți: 165888 kb/s
    Flux #1:0: Video: video brut (YUY2 / 0x32595559), yuyv422, 1920x1080, 165888 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc
Maparea fluxului:
  Flux #1:0 -> #0:0 (video brut (nativ) -> h264 (libx264))
  Flux #0:0 -> #0:1 (pcm_s16le (nativ) -> aac (nativ))
Apăsați [q] pentru a opri, [?] pentru ajutor
[alsa @ 0x5585283b2c60] ALSA buffer xrun.
[libx264 @ 0x5585283c8200] folosind capabilitățile procesorului: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x5585283c8200] profil Înalt, nivel 3.1
[libx264 @ 0x5585283c8200] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html=1 ref=caba deblock - opțiuni: caba deblock =1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip 1 chroma_qp_offset=0 fire=6 lookahead_threads=2 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_go weightb=0 open=1 weightb=0 =1 keyint=10 keyint_min=1 scenecut=40 intra_refresh=0 rc_lookahead=10 rc=cbr mbtree=1 bitrate=4000 ratetol=1,0 qcomp=0,60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=4000 vbv_maxrate=4000 vbv_enal=4000 filler=0 ip_ratio=1,40 aq=1:1,00
Ieșire #0, flv, la „rtmp://localhost/show/stream”:
  Metadate:
    codificator: Lavf57.83.100
    Flux #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p (progresiv), 1280x720, q=-1--1, 4000 kb/s, 5 fps, 1k tbn, 5 tbc
    Metadate:
      codificator: Lavc57.107.100 libx264
    Date secundare:
      cpb: bitrate max/min/avg: 4000000/0/4000000 dimensiune tampon: 12000000 vbv_delay: -1
    Flux #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, stereo, fltp, 128 kb/s
    Metadate:
      codificator: Lavc57.107.100 aac
[alsa @ 0x5585283b2c60] Blocarea cozii de mesaje de fire; luați în considerare creșterea opțiunii thread_queue_size (valoarea curentă: 8)

Deci, unde este valabilitatea, nu?, hardware-ul procesorului este prea scăzut? , procesorul meu cu specificații este Intel i5 Gen 2, Ram 8Gb, SSD 500GB (Futjisu lifebook S Series S710), OS ubuntu 18.4 (tocmai am început să învăț pe Linux)

Văd de la VLC codecul audio capturat este ADTS și static este, de asemenea, acolo, dar nu există sunet, Dacă îmi amintesc bine, când am oprit HLS Server, în ultima secundă a fost un sunet și moare fluxul.

Încerc să capturez informații în VLC astfel: audio codec capturat pe VLC captarea statisticilor pe VLC

daca problema mea este la aspectul hardware, se poate adauga o placa GPU NVEDIA cu ajutorul acceleratorului hardware CUDA, se poate rezolva?

rulăm aplay -l și v4l2-ctl --list-device msg este:

**** Lista dispozitivelor hardware de REDARE ****
card 0: MID [HDA Intel MID], dispozitiv 0: ALC269 Analog [ALC269 Analog]
  Subdispozitive: 1/1
  Subdispozitiv #0: subdispozitiv #0
card 0: MID [HDA Intel MID], dispozitiv 3: HDMI 0 [HDMI 0]
  Subdispozitive: 1/1
  Subdispozitiv #0: subdispozitiv #0
card 0: MID [HDA Intel MID], dispozitiv 7: HDMI 1 [HDMI 1]
  Subdispozitive: 1/1
  Subdispozitiv #0: subdispozitiv #0

s710@sensorsip:~$ v4l2-ctl --list-device
Video USB: Video USB (usb-0000:00:1a.0-1.2):
        /dev/video0

Video USB: Video USB (usb-0000:00:1a.0-1.3):
        /dev/video1

Cameră web USB: Cameră web USB (usb-0000:00:1d.0-1.3):
        /dev/video2

Noi folosim acum este USB Video 0 folosind comanda este HW:0

Multumesc pentru ajutor..

Salutari,

Christian Hung

llogan avatar
drapel jp
1) ffmpeg-ul tău este vechi. [Descărcați](https://johnvansickle.com/ffmpeg/) versiunea „git master” (nu versiunea de lansare) sau [compilați](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu) un nou ffmpeg .2) Ai primit un mesaj de avertizare `Blocarea cozii de mesaje a firelor de discuție; luați în considerare creșterea opțiunii thread_queue_size (valoarea curentă: 8)`. Încercați să creșteți acest lucru (după actualizare), cum ar fi `ffmpeg -f alsa -channels 2 -sample_rate 44100 -thread_queue_size 128 -i hw:0 ...`. 128 este un număr arbitrar doar ca exemplu: trebuie să experimentați pentru a găsi ce funcționează pentru dvs. Măriți până când mesajul de avertizare dispare.
llogan avatar
drapel jp
De asemenea, testați capturarea audio cu `arecord`. De asemenea, nu funcționează sau sună rău? Dacă da, atunci problema este probabil să nu fie ffmpeg.
Hung Christian avatar
drapel it
Mulțumesc frate, mâine va descărca și încerca
Hung Christian avatar
drapel it
1. mulțumesc, putem face upgrade ffmpeg la versiunea 4,4, cum să faceți upgrade?, mă poate învăța? 2. folosim codificatorul codec mpeg4 pentru fișierul mp4, de asemenea, un sunet bun, dar folosind codec libx264 și libx265 nu poate obține sunetul, poate obține, dar se clătește ma puteti ajuta din nou?, multumesc.
llogan avatar
drapel jp
Pentru a face upgrade [descărcare](https://johnvansickle.com/ffmpeg/) ffmpeg și introduceți `/usr/local/bin`. Sau urmați instrucțiunile [compile](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu). În ceea ce privește libx264, trebuie să testați noul ffmpeg înainte de a face orice altceva, apoi încercați să ridicați opțiunea thread_queue_size. Ai testat deja arecord?
Hung Christian avatar
drapel it
@llogan , Ziua trecută îmi actualizez deja ubuntu de la 18.04 la ubuntu 20.04.3 și instalez înapoi ffmpeg acum versiunea 4.2.4, dar rulez v4l2-ctl arătând cardul meu UBS Capture acum este USB Video: USB Video (usb-0000) :00:1a.0-1.3): /dev/video0 /dev/video1 cum pot distinge care este audio și video și ce comandă ar trebui să folosesc pentru ALSA?, mulțumesc pentru ajutor
Hung Christian avatar
drapel it
@llogan, încerc să dau înapoi sugestia dvs. „ffmpeg -f alsa -channels 2 -sample_rate 44100 -i hw:0 -f video4linux2 -i /dev/video0 -c:a aac -b:a 128k -c:v libx264 - presetat veryfast -b:v 4000k -maxrate 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream " , iar acum, nu putem rula alsa hw:0 sau hw:1, mesajul de eroare este hw:0: protocol not found, ați vrut să spuneți fișier:hw:0? și folosesc hw:1, mesajul este hw:1: protocol not found, ați vrut să spuneți fișier:hw:1 ?, ce ar trebui să fac? , Vă mulțumim pentru ajutor
Hung Christian avatar
drapel it
tocmai acum am încercat să rulez cu comanda " s710@sensorsip:~$ ffmpeg -f alsa -channels 2 -sample_rate 44100 -i /dev/video0 -f video4linux2 -i /dev/video1 -c:a aac -b:a 128k -c:v libx264 -preset veryfast -b:v 4000k -maxrate 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream " , i primit mesaj de eroare: „[alsa @ 0x56355f45dac0] nu poate deschide dispozitivul audio /dev/video0 (Nu există un astfel de fișier sau director) /dev/video0: Eroare de intrare/ieșire „ și am încercat să înlocuiesc comanda „ /dev/video0 la dev”. /video1 ", rezultatul este și o eroare, vă rog să mă ajutați, mulțumesc.
Hung Christian avatar
drapel it
@llogan, scuze uit să răspund la întrebările tale acord test, nu l-am încercat, pentru că înainte de a folosi codecul mpeg4 puteam obține audio, doar că folosesc codecuri libx264 sau libx265 care nu pot obține sunetul și eu Am încercat doar streaming audio, funcționează (pe versiunea 18.4 ubuntu, acum nu știu comanda pentru a introduce dispozitivul în alsa, îmi pare rău că vă deranjez, mulțumesc din nou pentru ajutor
Hung Christian avatar
drapel it
dispozitivul plăcii de sunet acum este: s710@sensorsip:~$ arecord -l **** Lista dispozitivelor hardware CAPTURE **** card 0: MS2109_1 [MS2109], dispozitiv 0: USB Audio [USB Audio] Subdispozitive: 1/1 Subdispozitiv #0: subdispozitiv #0 card 1: MS2109 [MS2109], dispozitiv 0: USB Audio [USB Audio] Subdispozitive: 1/1 Subdispozitiv #0: subdispozitiv #0 card 2: MID [HDA Intel MID], dispozitiv 0: ALC269 Analog [ALC269 Analog] Subdispozitive: 1/1 Subdispozitiv #0: subdispozitiv #0
llogan avatar
drapel jp
Ramura de lansare FFmpeg 4.2 este veche. Descărcați sau compilați o nouă versiune înainte de a face orice altceva.
Hung Christian avatar
drapel it
Instalați deja 4.4.1, sunetul bitrate al codificatorului alsa este 48000, dar setarea este 44100 folosind hw:0, iar dacă folosesc hw:2, sunetul bitrate al codificatorului este 44100, dar încă nu am o melodie, mulțumesc
Hung Christian avatar
drapel it
@llogan, se pare că am problema cu care mă confrunt, cardul meu de captură hw:0 în alsamixer nu a fost detectată nicio configurație audio, arată doar „Acest dispozitiv de sunet nu are comenzi de redare.”, dar a fost detectat Card: MS2109, Chip: USB Mixer, View: F3 [Playback] , iar de îndată ce apăs pe F3, rezultatul este să părăsesc alsamixer , nu mai știu ce să fac, dar voi încerca să rulez din soluția Windows, cine știe ajutor , Mulțumiri

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.