ncm文件转换

源码来自github,使用gcc编译,其中对于gcc编译器的include包含文件和函数声明有错误,做了适当改正。

github源码 :https://download.csdn.net/download/lang999888/70167960

编译结果:https://download.csdn.net/download/lang999888/70168917

附上批处理文件,查找子目录下的所有ncm文件,调用ncmdump.exe转码。

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%X in ('dir /ad /b') do (
cd "%%X"
call :ncmdumps
cd ..
echo "%%X"
pause
)
pause
goto end

:ncmdumps
for %%Y in (*.ncm) do (
ncmdump.exe "%%Y"
echo "%%Y"
)

:end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NCM是一种加密的音频格式,不能直接播放。以下是使用C#将NCM文件转换为WAV或MP3等音频文件的方法,附有详细注释: ```csharp using System; using System.Diagnostics; using System.IO; public void ConvertNcmToAudio(string ncmFilePath, string outputFilePath) { // 获取FFmpeg.exe的路径 var ffmpegPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ffmpeg.exe"); if (!File.Exists(ffmpegPath)) { throw new FileNotFoundException("FFmpeg.exe not found!"); } // 构造FFmpeg命令 var arguments = $"-y -i \"{ncmFilePath}\" -acodec copy \"{outputFilePath}\""; // 创建ProcessStartInfo对象,设置FFmpeg命令和参数 var startInfo = new ProcessStartInfo(ffmpegPath, arguments); startInfo.CreateNoWindow = true; startInfo.UseShellExecute = false; // 创建Process对象并启动 using (var process = new Process()) { process.StartInfo = startInfo; process.Start(); // 等待FFmpeg处理完成 process.WaitForExit(); } } ``` 注释如下: 1. 首先,我们需要下载FFmpeg.exe,它是一个免费的开源命令行工具,可用于处理音频和视频文件。我们将FFmpeg.exe文件放在项目的根目录下。 2. `ConvertNcmToAudio`方法接收两个参数:`ncmFilePath`表示要转换NCM文件的路径,`outputFilePath`表示转换后的音频文件的路径。 3. 我们使用`Path.Combine`方法获取FFmpeg.exe的路径。如果找不到FFmpeg.exe文件,则会抛出`FileNotFoundException`异常。 4. `arguments`字符串表示要传递给FFmpeg的命令和参数。这里我们使用`-i`参数指定要转换NCM文件路径,使用`-acodec copy`参数表示不进行编码,直接复制音频流,使用`-y`参数表示覆盖输出文件。 5. 使用`ProcessStartInfo`对象设置FFmpeg命令和参数。我们将`CreateNoWindow`和`UseShellExecute`属性设置为`true`和`false`,以便在后台运行FFmpeg。 6. 创建`Process`对象并启动。我们将`StartInfo`属性设置为`startInfo`,以便将FFmpeg命令和参数传递给Process对象。 7. 使用`WaitForExit`方法等待FFmpeg处理完成,然后关闭Process对象。 注意:上述代码仅支持将NCM文件转换为WAV或MP3等音频文件,不支持将其解密为原始音频文件。如果需要将NCM文件解密为原始音频文件,请使用网上现成的NCM解密工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值