5.1声道转化为左右声道

2024-09-08 11:08
文章标签 转化 左右 5.1 声道

本文主要是介绍5.1声道转化为左右声道,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

5.1声道转化为左右声道downmix
http://szfzafa.blog.163.com/blog/static/11895416720120724729214/
标题: Downmix 5.1ch to 2ch in AVS  
最简单:
function Dmix6Stereo(clip a) {  # 6 Channels L,R,C,LFE,SL,SR
  flr = GetChannel(a, 1, 2)
  fcc = GetChannel(a, 3, 3)
  lrc = MixAudio(flr, fcc, 0.3694, 0.2612) #忽略低音增强 不模拟相位差
  blr = GetChannel(a, 5, 6)
  return MixAudio(lrc, blr, 1.0, 0.3694)
}
左声道 =L*0.3694 + C*0.2612 + SL*0.3694
右声道 =R*0.3694 + C*0.2612 + SR*0.3694


function Dmix6Dpl(clip a) { # 6 Channels L,R,C,LFE,SL,SR
  flr = GetChannel(a, 1, 2)
  fcc = GetChannel(a, 3, 3)
  lrc = MixAudio(flr, fcc, 0.3205, 0.2265) #忽略低音增强 模拟相位差
  bl  = GetChannel(a, 5)
  br  = GetChannel(a, 6)
  sl  = MixAudio(bl, br, 0.2265, 0.2265) #把SL,SR都当作S处理了,用于SL,SR音源位置相同或相近
  sr  = MixAudio(bl, br, -0.2265, -0.2265)
  blr = MergeChannels(sl, sr)
  return MixAudio(lrc, blr, 1.0, 1.0)
}
左声道 =(L*0.3205+C*0.2265) + (SL*0.2265+SR*0.2265)
右声道 =(R*0.3205+C*0.2265) - (SL*0.2265+SR*0.2265)


function Dmix6Dpl2(clip a) { # 6 Channels L,R,C,LFE,SL,SR
  flr = GetChannel(a, 1, 2)
  fcc = GetChannel(a, 3, 3)
  lrc = MixAudio(flr, fcc, 0.3254, 0.2301) #忽略低音增强 模拟相位差
  bl  = GetChannel(a, 5)
  br  = GetChannel(a, 6)
  sl  = MixAudio(bl, br, 0.2818, 0.1627) #后向音源模拟相位差的混合幅度减小
  sr  = MixAudio(bl, br, -0.1627, -0.2818) #用于SL,SR音源位置相距有一定距离,但有并非正左正右
  blr = MergeChannels(sl, sr)
  return MixAudio(lrc, blr, 1.0, 1.0) #个人认为这样混合更合理
}
左声道 =(L*0.3254+C*0.2301) + (SL*0.2818+SR*0.1627)
右声道 =(R*0.3254+C*0.2301) + (SL*(-0.1627)+SR*(-0.2818))

这篇关于5.1声道转化为左右声道的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147942

相关文章

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

关于字符串转化为数字的深度优化两种算法

最近在做项目,在实际操作中发现自己在VC环境下写的字符串转化为整型的函数还是太过理想化了,或者说只能在window平台下软件环境中运行,重新给大家发两种函数方法: 第一个,就是理想化的函数,在VC环境下充分利用指针的优越性,对字符串转化为整型(同时也回答了某位网友的答案吖),实验检验通过: #include <stdio.h> #include <string.h> int rayatoi(c

通过C语言将文法转化为语言

最近在学习编译原理,在做一道题时,突然产生想法,想通过C语言将文法产生的语言表现出来。   题目如下:   给定文法:S::=aB|bA                     A::=aS|bAA|a                     B::=bS|aBB|b   该文法所产生的语言是什么?   程序如下,可以注意相关的程序注解 #include<stdio.h> #in

Oracle之用TO_CHAR函数将日期格式转化为不带前导零的月份和日

要求: 1、日期格式转化成字符串格式,月和日前面的0需要去掉,如日期2024-09-06需要转化成2024-9-6; 2、如果用截取拼接函数写法就会复杂,最好用TO_CHAR函数格式化实现。 正确写法: SELECT TO_CHAR(SYSDATE,'YYYY-fmMM-dd') AS DATE1 , -- 执行结果为 2024-9-6TO_CHAR(SYSDATE,'fmYYYY-MM-d

Flutter-listview的item左右滑动,删除item

import 'package:flutter/material.dart';//列表左右滑动删除void main() =>runApp(MaterialApp(home: HomePage(),));class HomePage extends StatelessWidget {final List<String> items = List.generate(20, (index) =>

jks bks 等的定义 如何将jks转化为bks的

接着上一篇,文中提到的android不和java一样识别jks,所以我们要将其转化成bks这里面我们就系统的介绍下到底该如何去生成jks,bks等等 常用的证书密钥库格式: BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操

有符号和无符号的转化

1.无符号转有符号 测试结果: 2.有符号转换为无符号数 测试结果: 其他

数据标注:PascalVOC模式到YOLO模式的一键转化

import osimport xml.etree.ElementTree as ETfrom decimal import Decimaldirpath = 'E:\\0911-0951最后一个文件夹\\20190215-211313 {3D675E7F-B913-41B0-B915-9381A662A919}(SHDT-0916(A))\\ZXB_LC01D\\xml' # 原来存放xm