Điểm:0

ffmpeg alsa không thể thu âm thanh từ thẻ ghi UVC USB HDMI sang máy chủ HLS

lá cờ it

trong bối cảnh tương tự trước đây, tôi đã được anh trai ( llgan ) giúp đỡ vào ngày 15 tháng 10 lúc 16:35 bằng cách sử dụng cú pháp gợi ý của anh ấy và tôi đã thử nó, lúc đầu tôi có âm thanh lắp bắp, sau đó nó trở lại im lặng ,nhưng vì lý do nào đó lâu rồi mình không vào blog này nên mất liên lạc, mọi người giúp mình với? điều kiện hiện tại chúng tôi sử dụng cú pháp:

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 -đặt trước rất nhanh -b:v 4000k -tốc độ tối đa 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream

và tôi có infoati chạy từ ffmpeg:

[alsa @ 0x556854b35c60] bộ đệm ALSA xrun. 
khung hình= 237 khung hình/giây=5,0 q=13,0 kích thước= 21447kB thời gian=00:00:43,23 tốc độ bit=4063,4kbit/s tốc độ=0,9 
khung hình= 239 khung hình/giây=5,0 q=13,0 kích thước= 21633kB thời gian=00:00:43,23 tốc độ bit=4098,6kbit/s tốc độ=0,9 
[alsa @ 0x556854b35c60] bộ đệm ALSA xrun. 
khung hình= 242 khung hình/giây=5,0 q=13,0 kích thước= 21932kB thời gian=00:00:44,23 tốc độ bit=4061,5kbit/s tốc độ=0,9 
khung hình= 244 khung hình/giây=5,0 q=13,0 kích thước= 22124kB thời gian=00:00:44,23 tốc độ bit=4097,1kbit/s tốc độ=0,9

có gì sai không?, và chúng tôi dừng bộ mã hóa có thông tin là:

[flv @ 0x5585283c6a40] Không thể cập nhật tiêu đề với thời lượng chính xác.
[flv @ 0x5585283c6a40] Không thể cập nhật tiêu đề với kích thước tệp chính xác.
khung hình=428826 fps=5,0 q=-1,0 Lsize=40706449kB time=23:49:20,70 tốc độ bit=3888,1kbit/s tốc độ=0,958x
video:428826kB âm thanh:767kB phụ đề:0kB các luồng khác:0kB tiêu đề chung:0kB chi phí trộn: 0,025860%
[libx264 @ 0x5585283c8200] khung I:57274 QP trung bình: 7,20 kích thước:151544
[libx264 @ 0x5585283c8200] khung P:263139 QP trung bình: 10,57 kích thước:96778
[libx264 @ 0x5585283c8200] khung B:108413 QP trung bình:10,50 kích thước: 69423
[libx264 @ 0x5585283c8200] khung hình B liên tiếp: 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% bỏ qua: 2,7%
[libx264 @ 0x5585283c8200] mb B I16..4: 4,2% 2,4% 4,7% B16..8: 23,7% 26,8% 14,9% trực tiếp:14,1% bỏ qua:9,1% L0:36,9% L1:34,7% BI:28,4%
[libx264 @ 0x5585283c8200] Biến đổi 8x8 bên trong:19,5% bên trong:35,3%
[libx264 @ 0x5585283c8200] được mã hóa y,uvDC,uvAC bên trong: 83,4% 88,7% 85,2% bên trong: 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] Khung P có trọng số: Y:2,6% UV:1,9%
[libx264 @ 0x5585283c8200] kb/s:3887,06
[aac @ 0x5585283cc760] Qavg: 65536.000
s710@cảm biến:~$

Đầu tiên chúng tôi bắt đầu thông điệp ffmpg là:

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 -preset veryfast -b :v 4000k -tốc độ tối đa 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream
ffmpeg phiên bản 3.4.8-0ubuntu0.2 Bản quyền (c) 2000-2020 các nhà phát triển FFmpeg
  được xây dựng với gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  cấu hình: --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
Bố cục kênh đã đoán cho Luồng đầu vào #0.0 : âm thanh nổi
Đầu vào #0, alsa, từ 'hw:0':
  Thời lượng: Không áp dụng, bắt đầu: 1635926018.864251, tốc độ bit: 1411 kb/s
    Luồng #0:0: Âm thanh: pcm_s16le, 44100 Hz, âm thanh nổi, s16, 1411 kb/s
Đầu vào số 1, video4linux2,v4l2, từ '/dev/video0':
  Thời lượng: Không áp dụng, bắt đầu: 89255.399764, tốc độ bit: 165888 kb/s
    Luồng #1:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1920x1080, 165888 kb/s, 5 fps, 5 tbr, 1000k tbn, 1000k tbc
Ánh xạ luồng:
  Luồng #1:0 -> #0:0 (rawvideo (gốc) -> h264 (libx264))
  Luồng #0:0 -> #0:1 (pcm_s16le (gốc) -> aac (gốc))
Nhấn [q] để dừng, [?] để được trợ giúp
[alsa @ 0x5585283b2c60] bộ đệm ALSA xrun.
[libx264 @ 0x5585283c8200] sử dụng khả năng cpu: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x5585283c8200] cấu hình Cao, cấp 3.1
[libx264 @ 0x5585283c8200] 264 - lõi 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - tùy chọn: cabac=1 ref=1 gỡ khóa =1:0:0 analyse=0x3:0x113 me=hex subme=2 psy=1 psy_rd=1.00:0.00Mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip= 1 chroma_qp_offset=0 thread=6 lookahead_threads=2 slice_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 =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_bufsize=12000 nal_hrd=none phụ=0 ip_ratio=1.40 aq=1:1.00
Đầu ra #0, flv, thành 'rtmp://localhost/show/stream':
  Metadata:
    bộ mã hóa: Lavf57.83.100
    Luồng #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p(liên tục), 1280x720, q=-1--1, 4000 kb/s, 5 khung hình/giây, 1k tỷ, 5 tỷ
    Metadata:
      bộ mã hóa: Lavc57.107.100 libx264
    Dữ liệu bên:
      cpb: tốc độ bit tối đa/phút/trung bình: 4000000/0/4000000 kích thước bộ đệm: 12000000 vbv_delay: -1
    Luồng #0:1: Âm thanh: aac (LC) ([10][0][0][0] / 0x000A), 44100 Hz, âm thanh nổi, fltp, 128 kb/s
    Metadata:
      bộ mã hóa: Lavc57.107.100 aac
[alsa @ 0x5585283b2c60] Chặn hàng đợi tin nhắn chủ đề; xem xét tăng tùy chọn thread_queue_size (giá trị hiện tại: 8)

Vậy hợp lệ ở đâu hả bạn?, có phải phần cứng CPU quá thấp không? , thông số CPU của mình là Intel i5 Gen 2 , Ram 8Gb , SSD 500GB ( Futjisu lifebook S Series S710 ), HĐH ubuntu 18.4 ( Mình mới bắt đầu học trên Linux )

Tôi thấy từ VLC, codec âm thanh bắt được là ADTS và tĩnh cũng có, nhưng không có âm thanh, Nếu tôi nhớ không nhầm thì khi tôi tắt Máy chủ HLS, ở giây cuối cùng có âm thanh và chết luồng.

Tôi cố gắng nắm bắt thông tin trong VLC như thế này: âm thanh codec được ghi trên VLC chụp số liệu thống kê trên VLC

nếu vấn đề của tôi là ở khía cạnh phần cứng, liệu có thể thêm thẻ GPU NVEDIA với sự trợ giúp của việc sử dụng bộ tăng tốc phần cứng CUDA, vấn đề có thể được giải quyết không?

chúng tôi chạy aplay -l và v4l2-ctl --list-device msg là:

**** Danh sách các thiết bị phần cứng PHÁT LẠI ****
thẻ 0: MID [HDA Intel MID], thiết bị 0: ALC269 Analog [ALC269 Analog]
  Thiết bị phụ: 1/1
  Thiết bị con #0: thiết bị con #0
thẻ 0: MID [HDA Intel MID], thiết bị 3: HDMI 0 [HDMI 0]
  Thiết bị phụ: 1/1
  Thiết bị con #0: thiết bị con #0
thẻ 0: MID [HDA Intel MID], thiết bị 7: HDMI 1 [HDMI 1]
  Thiết bị phụ: 1/1
  Thiết bị con #0: thiết bị con #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

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

chúng tôi sử dụng bây giờ là USB Video 0 sử dụng lệnh là HW:0

Cảm ơn bạn đã giúp đỡ..

Trân trọng,

Christian Hùng

llogan avatar
lá cờ jp
1) ffmpeg của bạn đã cũ. [Tải xuống](https://johnvansickle.com/ffmpeg/) phiên bản "git master" (không phải phiên bản phát hành) hoặc [biên dịch](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu) một ffmpeg mới .2) Bạn nhận được thông báo cảnh báo `Chặn hàng đợi tin nhắn chủ đề; xem xét tăng tùy chọn thread_queue_size (giá trị hiện tại: 8)`. Hãy thử tăng giá trị này (sau khi nâng cấp), chẳng hạn như `ffmpeg -f alsa -channels 2 -sample_rate 44100 -thread_queue_size 128 -i hw:0 ...`. 128 là một con số tùy ý chỉ là một ví dụ: bạn cần thử nghiệm để tìm ra con số phù hợp với mình. Tăng cho đến khi thông báo cảnh báo biến mất.
llogan avatar
lá cờ jp
Ngoài ra, hãy thử thu âm thanh bằng `arecord`. Có phải nó cũng không hoạt động hoặc âm thanh xấu? Nếu có, thì vấn đề có thể không phải là ffmpeg.
Hung Christian avatar
lá cờ it
Cám ơn bác, mai tải về dùng thử
Hung Christian avatar
lá cờ it
1. cảm ơn, chúng tôi có thể nâng cấp ffmpeg lên phiên bản 4,4, nâng cấp như thế nào?, có thể dạy tôi không? 2. Mình dùng codec mpeg4 encoder ra file mp4 âm thanh cũng hay nhưng dùng codec libx264 dan libx265 không ra được tiếng, vào được nhưng chập chờn có thể giúp tôi agian?, cảm ơn.
llogan avatar
lá cờ jp
Để nâng cấp [tải xuống](https://johnvansickle.com/ffmpeg/) ffmpeg và đặt vào `/usr/local/bin`. Hoặc làm theo hướng dẫn [biên dịch](https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu). Đối với libx264, bạn cần kiểm tra ffmpeg mới trước khi thực hiện bất kỳ điều gì khác, sau đó thử tăng tùy chọn thread_queue_size. Bạn đã kiểm tra arecord chưa?
Hung Christian avatar
lá cờ it
@llogan, Hôm trước tôi đã nâng cấp ubuntu của mình từ 18.04 lên ubuntu 20.04.3 và cài đặt lại ffmpeg ngay bây giờ là phiên bản 4.2.4, nhưng tôi đang chạy v4l2-ctl hiển thị thẻ UBS Capture của tôi bây giờ là USB Video: USB Video (usb-0000 :00:1a.0-1.3): /dev/video0 /dev/video1 làm cách nào tôi có thể phân biệt cái nào là âm thanh và video và tôi nên sử dụng lệnh nào cho ALSA?, cảm ơn sự giúp đỡ
Hung Christian avatar
lá cờ it
@llogan, tôi đang thử chạy lại đề xuất của bạn "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 - cài đặt trước veryfast -b:v 4000k -maxrate 4000k -bufsize 12000k -g 10 -vf "scale=1280:720,format=yuv420p" -f flv rtmp://localhost/show/stream " , và bây giờ, chúng tôi không thể chạy alsa hw:0 hoặc hw:1 , thông báo lỗi là hw:0: không tìm thấy giao thức , Ý bạn là file:hw:0 ? và tôi đang sử dụng hw:1 , thông báo là hw:1: không tìm thấy giao thức, Ý bạn là tệp:hw:1 ?, tôi nên làm gì? , Cảm ơn bạn đã giúp đỡ
Hung Christian avatar
lá cờ it
vừa rồi tôi đã thử chạy bằng lệnh " 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 " , tôi có thông báo lỗi: " [alsa @ 0x56355f45dac0] không thể mở thiết bị âm thanh /dev/video0 (Không có tệp hoặc thư mục như vậy) /dev/video0: Lỗi đầu vào/đầu ra " và tôi đã cố gắng thay thế lệnh " /dev/video0 thành dev /video1 " , kết quả là một lỗi cũng giống như vậy , hãy giúp tôi, cảm ơn.
Hung Christian avatar
lá cờ it
@llogan, xin lỗi, quên trả lời câu hỏi của bạn theo bài kiểm tra phù hợp, tôi chưa thử, vì trước khi tôi sử dụng codec mpeg4, tôi có thể nhận được âm thanh, chỉ là tôi đang sử dụng codec libx264 hoặc libx265 không thể nhận được âm thanh và tôi' Tôi đã thử chỉ phát trực tuyến âm thanh, nó hoạt động (trên phiên bản 18.4 ubuntu, bây giờ tôi không biết lệnh lấy thiết bị trong alsa, xin lỗi đã làm phiền bạn, cảm ơn bạn đã giúp đỡ một lần nữa
Hung Christian avatar
lá cờ it
thiết bị card âm thanh của tôi bây giờ là: s710@sensorsip:~$ arecord -l **** Danh sách thiết bị phần cứng CAPTURE **** thẻ 0: MS2109_1 [MS2109], thiết bị 0: Âm thanh USB [Âm thanh USB] Thiết bị phụ: 1/1 Thiết bị con #0: thiết bị con #0 thẻ 1: MS2109 [MS2109], thiết bị 0: Âm thanh USB [Âm thanh USB] Thiết bị phụ: 1/1 Thiết bị con #0: thiết bị con #0 thẻ 2: MID [HDA Intel MID], thiết bị 0: ALC269 Analog [ALC269 Analog] Thiết bị phụ: 1/1 Thiết bị con #0: thiết bị con #0
llogan avatar
lá cờ jp
Nhánh phát hành FFmpeg 4.2 đã cũ. Tải xuống hoặc biên dịch phiên bản mới trước khi làm bất cứ điều gì khác.
Hung Christian avatar
lá cờ it
đã cài đặt 4.4.1, âm thanh tốc độ bit của bộ mã hóa alsa là 48000 nhưng tôi đang cài đặt là 44100 khi sử dụng hw:0 và nếu tôi đang sử dụng hw:2 thì âm thanh tốc độ bit của bộ mã hóa là 44100 nhưng vẫn không có bài hát, cảm ơn
Hung Christian avatar
lá cờ it
@llogan, có vẻ như tôi đang gặp sự cố, thẻ chụp hw:0 của tôi trong alsamixer không phát hiện thấy cấu hình âm thanh, chỉ hiển thị "Thiết bị âm thanh này không có bất kỳ điều khiển phát lại nào.", nhưng đã phát hiện thấy Thẻ: MS2109, Chip: USB Mixer, View: F3 [Playback] , vừa nhấn F3 thì ra kết quả là thoát alsamixer, không biết làm sao nữa, thử chạy từ giải pháp windows xem, ai biết giúp với , cảm ơn

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.