使用VBA+FFmpeg处理音频遇路径语法错误及输出异常求助
VBA调用FFmpeg处理音频报错问题
- 执行VBA调用FFmpeg处理音频的代码时,弹出“文件名、目录名或卷标语法不正确”提示,但已确认所有路径及文件名无错误
- 执行过程中还出现输出文件为空、无法打开输出文件等异常
所用VBA代码
Sub ExtractTextFromMP3() Dim mp3FilePath As String Dim outputFilePath As String Dim ffmpegPath As String Dim command As String ' 设置路径 mp3FilePath = "C:\Temp\ed.mp3" outputFilePath = "C:\Temp\ed.txt" ffmpegPath = "C:\Temp\bin\ffmpeg.exe" ' FFmpeg可执行文件路径 ' 构造FFmpeg命令 command = """" & ffmpegPath & """" & " -i """ & mp3FilePath & """ -f s16le -acodec pcm_s16le -vn -ar 44100 -ac 2 - | " & _ """" & ffmpegPath & """" & " -f s16le -ar 44100 -ac 2 -i - -acodec pcm_s16le -f wav - | " & _ """" & ffmpegPath & """" & " -i - -f segment -segment_time 30 -c copy -vn -y """ & outputFilePath & """" ' 执行FFmpeg命令 Shell "cmd /c " & command ', vbHide End Sub
报错信息(翻译后)
[aist#0:0/pcm_s16le @ 00000276950ee240] 推测声道布局:立体声 输入 #0, s16le, 来自 'fd:': 时长: N/A, 码率: 1411 kb/s 流 #0:0: 音频: pcm_s16le, 44100 Hz, 2声道, s16, 1411 kb/s 流映射: 流 #0:0 -> #0:0 (pcm_s16le (原生) -> pcm_s16le (原生)) [aost#0:0/pcm_s16le @ 0000027695101600] 输出流无过滤帧,尝试强制初始化。 输出 #0, wav, 到 'pipe:': 元数据: ISFT : Lavf60.10.100 流 #0:0: 音频: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 立体声, s16, 1411 kb/s 元数据: encoder : Lavc60.22.100 pcm_s16le [out#0/wav @ 0000027695100800] 视频:0kB 音频:0kB 字幕:0kB 其他流:0kB 全局 头信息:0kB 封装开销: 未知 [out#0/wav @ 0000027695100800] 输出文件为空,无内容被编码(若使用了-ss/-t/-frames参数请检查) size= 0kB time=N/A bitrate=N/A speed=N/A [wav @ 000001ea21a9f800] 忽略WAV最大数据大小限制,文件可能无效 [wav @ 000001ea21a9f800] 无法检查SPDIF [aist#0:0/pcm_s16le @ 000001ea21a9e280] 推测声道布局:立体声 输入 #0, wav, 来自 'fd:': 元数据: encoder : Lavf60.10.100 时长: N/A, 码率: 1411 kb/s 流 #0:0: 音频: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2声道, s16, 1411 kb/s 输出 #0, segment, 到 'C:\Temp\ed.txt': [out#0/segment @ 000001ea21ad9140] 输出文件不包含任何流 打开输出文件C:\Temp\ed.txt失败。 打开输出文件失败:无效参数
内容的提问来源于stack exchange,提问作者Gutemberg Silveira Alves GTTJ
相关产品推荐
相关产品推荐

