国语视界

 找回密码
 立即注册
查看: 188|回复: 3

[音频技术] 求教:怎么用atmos_decode.py从thd文件分离出单个声道

[复制链接]

81

主题

2655

帖子

2891

积分

营长

大洋
29513
阅读权限
50
发表于 23-1-23 09:12 | 显示全部楼层 |阅读模式
看了真情大佬的帖子,知道atmos_decode.py可以分离thd文件,可是一直没有成功,请大佬指教方法,不胜感谢。
我的步骤是这样的:
1 安装好Dolby Reference Player 3.2.0
2 把下载好的atmos_decode.py(7k大小)文件复制到Dolby Reference Player的安装目录
3 进入Dolby Reference Player的安装目录,在文件浏览器地址栏输入cmd,这时候cmd黑框出现了
4 在cmd里输入>atmos_decode.py -i f:\0.thd,(0.thd这个文件是我要分离的文件)这时候出现一个提示框,问我py文件要用什么文件来打开,我选择了Dolby Reference Player的安装目录里面的gst-inspect-1.0,然后有一个窗口一闪而过,没有看清是什么就消失了,然后cmd就回到原来的窗口状态了,以后没有任何反应了。


结果是我没有分理处任何单声道文件
学习学习再学习

5

主题

295

帖子

211

积分

排长

大洋
1185
阅读权限
30
发表于 23-1-24 08:17 | 显示全部楼层
可能是第4步的问题,atmos_decode.py文件要输入完整路径,或者直接拖到cmd窗口里
回复 支持 反对

使用道具 举报

132

主题

302

帖子

4933

积分

超级版主

大洋
214893
阅读权限
150

太空探索计划

发表于 23-1-25 21:20 | 显示全部楼层
py文件要用python打开,百度python安装

或直接输入命令:

"C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe" --force-position  --gst-plugin-path "C:\Program Files\Dolby\Dolby Reference Player\gst-plugins" filesrc location="{@input}" ! dlbtruehdparse align-major-sync=false ! dlbaudiodecbin truehddec-presentation=16 out-ch-config={@ch-config} ! deinterleave name=d d.src_{@ch-id} ! wavenc ! filesink location="{@output}"

说明:
     1、@input:代表输入文件路径+文件名,路径中的\要用\\代替,如:C:\\atmos\\cnlang.mlp

     2、@ch-config:代表输出声道配置,可选0,3,7,11,12,13,14,15,16,17,18,19,20,分别代表声道布局如下:
              (0): 2.0                - channels: L,R
              (3): 3.1                - channels: L,R,C,LFE
              (7): 5.1                - channels: L,R,C,LFE,Ls,Rs
              (11): 7.1              - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs
              (12): 9.1              - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Lw,Rw
              (13): 5.1.2            - channels: L,R,C,LFE,Ls,Rs,Ltm,Rtm
              (14): 5.1.4            - channels: L,R,C,LFE,Ls,Rs,Ltf,Rtf,Ltr,Rtr
              (15): 7.1.2            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Ltm,Rtm
              (16): 7.1.4            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Ltf,Rtf,Ltr,Rtr
              (17): 7.1.6            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Ltf,Rtf,Ltm,Rtm,Ltr,Rtr
              (18): 9.1.2            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Lw,Rw,Ltm,Rtm
              (19): 9.1.4            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Lw,Rw,Ltf,Rtf,Ltr,Rtr
              (20): 9.1.6            - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Lw,Rw,Ltf,Rtf,Ltm,Rtm,Ltr,Rtr

     3、@ch-id:代表输出声道的id,如:9.1.6 - channels: L,R,C,LFE,Ls,Rs,Lrs,Rrs,Lw,Rw,Ltf,Rtf,Ltm,Rtm,Ltr,Rtr ,L~Rtr的id就是0~16

     4、@output:代表输出文件路径+文件名路径中的\要用\\代替,如:C:\\atmos\\cnlang.01_L.wav,注意路径和文件名是不能有中文的。
     
例子:

  1. "C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe" --force-position  --gst-plugin-path "C:\Program Files\Dolby\Dolby Reference Player\gst-plugins" filesrc location="C:\\atmos\\cnlang.mlp" ! dlbtruehdparse align-major-sync=false ! dlbaudiodecbin truehddec-presentation=16 out-ch-config=20 ! deinterleave name=d d.src_0 ! wavenc ! filesink location="C:\\atmos\\cnlang.01_L.wav"
复制代码


PS,把上面命令用花括号分成几个部分便于理解:

"C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe" --force-position  --gst-plugin-path "C:\Program Files\Dolby\Dolby Reference Player\gst-plugins" filesrc location="C:\\atmos\\cnlang.mlp" ! dlbtruehdparse align-major-sync=false ! dlbaudiodecbin truehddec-presentation=16 out-ch-config=20 ! deinterleave name=d d.src_0 ! wavenc ! filesink location="C:\\atmos\\cnlang.01_L.wav"


gstreamer是基于管道和插件的,gstreamer的命令虽然长但不难理解:

gst-launch-1.0.exe 是 gstreamer的验证工具,--gst-plugin-path参数定义了要加载插件的目录。

用“!”号连接插件 dlbtruehdparse => dlbaudiodecbin =>deinterleave  =>wavenc =>filesink,设置每个链接插件的参数首尾相连形成一个管道,最后输出结果。

         插件 dlbtruehdparse,dlb      truehd   parse,其实它就是验证下传给过来的是不是truehd格式的数据,传给  dlb      audio    decbin插件解码
                                       (Dolby)              (解析)                                                                                             (Dolby) (声音)     (解码)
解码后的传给deinterleave 解交错成PCM,wavenc把PCM编码成wav格式,最后输出到filesink保存成文件。



gstreamer的插件好几百,能作的太多太多,可一条命令完成把m2ts里的视频编码成x264,把音轨truehd转成eac3,最后把转码的结果合成到mkv里。


点评

感谢bobo大神指点,我在按照你的方法研究和实践,非常感谢  发表于 23-1-25 23:46
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表