通过pulseaudio通过hdmi实现DTS或AC-3实时编码器

时间:2018-05-24 08:13:21

标签: linux pulseaudio hdmi dolby-audio-api

这是我的问题我的笔记本电脑(Debian 8)通过HDMI连接到我的电视,它本身通过SPDIF光缆连接到我的5.1家庭影院。 SPDIF仅允许使用PCM编码的单声道立体声声道或使用杜比式格式的多声道信道,因此可以进行DTS或AC-3编码。

我的系统正确检测到约束:

cat /proc/asound/card0/eld#0.0
monitor_present     1
eld_valid       1
monitor_name        LG TV
connection_type     HDMI
eld_version     [0x2] CEA-861D or below
edid_version        [0x3] CEA-861-B, C or D
manufacture_id      0x6d1e
product_id      0x1
port_id         0x0
support_hdcp        0
support_ai      1
audio_sync_delay    0
speakers        [0xffff] FL/FR LFE FC RL/RR RC FLC/FRC RLC/RRC FLW/FRW FLH/FRH TC FCH
sad_count       4
sad0_coding_type    [0x1] LPCM
sad0_channels       2
sad0_rates      [0x14e0] 32000 44100 48000 96000 192000
sad0_bits       [0xe0000] 16 20 24
sad1_coding_type    [0x2] AC-3
sad1_channels       6
sad1_rates      [0xe0] 32000 44100 48000
sad1_max_bitrate    640000
sad2_coding_type    [0xa] E-AC-3/DD+ (Dolby Digital Plus)
sad2_channels       6
sad2_rates      [0xe0] 32000 44100 48000
sad3_coding_type    [0x7] DTS
sad3_channels       6
sad3_rates      [0xc0] 44100 48000
sad3_max_bitrate    1536000 

我已经在网上看到了大多数主题在2012年真的已经过时了。我找到了第一个解决方案,a52 alsa插件,但不幸的是我觉得它不起作用或者配置不是由pulseaudio读取的。

#####
# Description: Pour utiliser le plugin a52 d'alsa avec PulseAudio. Les valeurs par défaut sont channels 6 (valeurs possible 2,4,6), bitrate 448 kbit/s par défaut et fréquence échantillonnage 48000 Hz (44100 ou 48000 possible).
#                A mettre dans ~/.asoundrc .
pcm.a52hdmi {
   @args [CARD]
   @args.CARD {
       type string
       default 0
   }
   type rate
   slave {
       pcm {
           type a52
           bitrate 640
           rate 48000
           channels 6
           card $CARD
       }
       rate 48000 #nécessaire pour PulseAudio
   }
}

我找到了一种使用mpv查看我的电影的方法,因为如果我理解它绕过pulseaudio。

mpv --fullscreen --speed=24000/25025 --hwdec=vaapi --deinterlace=yes --af scaletempo,lavcac3enc=tospdif=yes:bitrate=640:minch=2

但我真的希望pulseaudio在AC-3或DTS中通过SPDIF发出5.1声音。

1 个答案:

答案 0 :(得分:0)

我找到了第一个解决方案,但是我有一些噪音和破解音频: https://github.com/darealshinji/dcaenc

我找到了另一个解决方案: https://www.linuxquestions.org/questions/linux-hardware-18/alsa-sb-omni-surround-5-1-iec958-is-routed-to-the-analog-output-not-the-digital-output-4175609669/

但似乎alsa无法分配正确的设备号:((我只是添加我通过设备$ DEV更改设备2并将其添加到输入参数)

结果:

refetchQueries

完整配置:https://pastebin.com/ZtF9npBD

我希望尽快收到你的来信;)