第1个回答 2021-02-21
tak是一种无损音频格式,有着较好的性能,但能完美支持的播放器不多(虽然tak官方说vlc、potplayer、ffplay支持,但其实都是半吊子)
最近收藏了一张CD的音频资源,文件恰好是tak格式,我最终用foobar顺利的播放了TA,但我还希望能用我的MP3播放TA,然后我开始研究如何如何转换TA
ffmpeg、foobar和一些所谓的“tak在线转flac网站”都失败了,最终我了解到tak官方有一个自己的转换工具,于是这就成了我的最终方案,工具下载地址:官网
该工具仅提供tak和wav文件之间的转码,支持批处理,仅支持Windows平台,不过只要得到了wav文件,后面就可以用FFmpeg、AU之类的工具转换成flac、mp3这些常见格式了
下载并解压后可以看到有4个文件夹
我们打开Applications文件夹,可以看到里面有这两个文件
其中Takc.exe是命令行工具,Tac.exe则包含了一个简单的操作界面
我们运行Tac.exe,可以看到如下画面
其中,Compress用于将wav文件转码成tak文件,而Decompress可以把tak文件转码成wav文件,Options中还可以设置线程数
wav文件后续转换我推荐FFmpeg,觉得命令行不好用,可以找一些GUI(比如Free Audio Video Pack)
第2个回答 2021-02-22
Pck文件转成胃服后,如何实现转板?接下来我将围绕深度学习在视频分析与处理方面的实践,为大家分享我在腾讯音视频实验室开发腾讯丽影这一视频处理平台时收获到的经验教训,希望能够为大家带来帮助。
视频处理平台的核心功能是视频转码,大家理解的视频转码可能是用于缩小文件体积。实际上随着体积的缩小,视频的品质也会越来越差,转码造成的质量损失似乎难以避免。腾讯丽影是一个以人眼视觉为标准的视频处理平台,致力于实现通过转码缩小视频文件体积的同时提升画面的主观视觉质量。依据传统的编解码思路,从信号处理的角度出发,通过衡量转码前后的视频画面相似程度来判断转码质量,其局限性在于只能用于判断经过转码处理后视频画面的劣化程度,而无法准确判断其主观视觉质量因为适当视频修复增强所带来的提升。
图片
上图展示的是某短视频App的视频片段, 以及经过丽影平台再转码后所得到的画面,可以看到丽影平台处理后的视频文件体积相较于某App缩小一半以上,同时人眼视觉质量更加出色。这里的第一个关键点在于如何衡量人眼视觉质量高低并将人眼视觉特性用于优化视频处理平台的转码过程,使经过转码处理的视频所呈现的画面更加符合人眼观看习惯;第二个关键点则是有哪些成熟的工具可以帮助在视频处理与人眼视觉之间建立联系。我将借本次分享为大家介绍腾讯丽影如何利用深度学习的方法实现将人眼喜好精准定位至我们的视频处理系统,以实现缩小视频文件体积的同时提升画面主观视觉质量的压缩与转码处理。
1. 问题描述
图片
上图展示了我们对于此命题的解构:图中的绿色圆形代表带宽资源,其面积越大代表带宽资源越充裕;白色代表人眼所能感知的信息总量,面积越大代表人眼可从视频画面中接收越多信息,同时也意味着视频的主观视觉质量越高。我们将现实环境中肉眼直接看到的被采集画面作为主观视觉质量最好的基准Golden Oracle也就是图中左侧虚线绿色圆形,如果以使用手机采集为例,经过采集设备的第一次捕捉、转制与压缩过程,视频所保留的可供人眼捕捉到的画面信息为图中黑实线绿色圆形内的白色三角区域(Src);随后视频数据上传云端转码后再分发,其势必会造成画质的进一步折损,我们将经过传输后视频所保留的可供人眼捕捉到的画面信息表示为图右侧黑实线绿色圆形内的白色正方形区域(Enc)。
图片
从H.264到H.265甚至到VVC也就是大家熟悉的H.266,压缩算法的升级本质上是在带宽限制相同的基础上进一步提升人眼所能从画面中获取到的信息总量,也就是在控制绿色圆形面积不变的情况下尽可能增大白色区域面积,将白色正方形“升级”为白色五边形乃至白色六边形,最后变成一个完全覆盖绿色区域的白色圆形。
如果我们将采集到的视频通过有限的带宽资源上传至云端并使用更出色的编码器处理视频数据,虽然云端更好的计算资源可以保留比前一种方案更多的视觉信息,但此方案在编码速度上容易受到网络环境的制约,如何改善此系统才能实现图中Src正方形对Enc三角形在主观视觉质量上的超越?
我们可以通过提升手机硬件水平,使用光学性能更好的镜头组件,算法更佳出色的ISP来保留画面的更多细节;将数据传输至云端后使用经过优化的编码器即可有效改善相同带宽人眼所能感知到的视觉信息量。
图片
借助上述方案我们可以将绿色圆形中的白色区域由之前的正方形扩展至五边形甚至六边形,但即便如此我们也没有很好的办法解决网络传输过程中数据损失,尤其是视频上传时由于带宽资源的限制我们必须对视频进行压缩方可上传,而在一些情况下也许即将上传的视频文件本身就经过一次甚至多次相似的压缩,这就需要我们通过一些方法还原修复此视频源文件,增强其画质之后再传输至云端,从而使视频在云端能够保留更多可供人眼感知的信息。
图片
以一个从网页端获取的,已被用户端编码器处理过的视频作为源文件,借助深度学习技术,“丽影”平台如何从已被编解码压缩过程破坏的源视频文件中还原出更多的人眼视觉信息?如何经过云端处理实现在同样的视频带宽限制条件之下视频呈现更多的视觉细节?这也是我们本次分享需要着重探讨的内容。
图片
视频画面中总是包含许多纷繁复杂的视觉元素,而使用深度学习技术是为了提升人眼主观视觉质量,让观众观看画面时感觉画面“漂亮”。这里需要一个用以表示画面呈现的第一时间人眼最为关注视觉重点区域的高级人眼视觉语义信号,以上图为例,人眼看到上图画面的第一时间会把视觉重点落在人脸也就是红色框表示区域,而画面其它区域例如绿色框表示区域则为非视觉重点区域。我们对画面进行修复处理以及编码时应当特别关注视觉重点区域。
第3个回答 2021-02-22
音频文件转码是经常用到的,分享无论什么格式的音频文件都可以转码的方法
先看下核心代码:
"file"是音频文件,"localPath"指的暂存文件位置,"beforeFileName"是暂存文件的文件名,"afterFileName"是转码后的文件名;
public InputStream getEndcode(MultipartFile file,String beforeFileName,String afterFileName,String localPath) {
try {
InputStream stream ;
File source = null,target=null;//转码前后文件的存贮位置
String a = null,b = null;
byte[] data = file.getBytes();//获取上传文件字节流
getFileByBytes(data, localPath, beforeFileName);//把上传文件字节流存在临时文件中
a = localPath+"/"+beforeFileName;
b = localPath+"/"+afterFileName;
source = new File(a);//转码前的文件
target = new File(b);//转码后的文件
AudioAttributes audio = new AudioAttributes();
audio.setCodec("pcm_alaw");//转码的算法
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("wav");//转码后文件后缀
audio.setChannels(new Integer(1));//音频通道,单声道
audio.setSamplingRate(new Integer(8000));//音频采样率8000Hz,根据自身需要修改
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
stream = new FileInputStream(target);//获取转码后文件的输入流
return stream;
} catch (Exception e) {
e.printStackTrace();
}
}