可信计算 2021-04-05 05:58 采纳率: 0%
浏览 332

为何FFmpeg处理中文输入有时乱码有时正常?

BAT命令行代码如下:

setlocal enabledelayedexpansion
::chcp 936
for %%a in (C:\test4\NewFile\*.txt) do (
set /p acd=<%%a
echo ffmpeg -f concat -safe 0 -i "%%a" -c copy W:\2\!acd:~10,100!

C:\ffmpeg\bin\ffmpeg.exe -f concat -safe 0 -i "%%a" -c copy W:\2\!acd:~10,100!
)
)
pause

所有的txt文件和bat文件都是ANSI编码了,控制台回显也是正常的,为何FFMPEG的输入还是乱码?

ffmpeg版本:

ffmpeg-N-101857-g0617e578a3-win64-gpl-vulkan

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-19 08:41
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题的根本原因是FFmpeg在Windows平台中由于编码问题导致无法正常读取中文文件名。可以通过修改BAT命令行代码中的CHCP命令,将代码页设置为UTF-8,以解决乱码问题。 修改后的BAT命令行代码如下:
    setlocal enabledelayedexpansion
    chcp 65001
    for %%a in (C:\test4\NewFile\*.txt) do (
        set /p acd=<%%a
        echo ffmpeg -f concat -safe 0 -i "%%a" -c copy W:\2\!acd:~10,100!
        C:\ffmpeg\bin\ffmpeg.exe -f concat -safe 0 -i "%%a" -c copy W:\2\!acd:~10,100!
    )
    pause
    

    在这个修改后的代码中,将CHCP命令设置为65001,表示使用UTF-8编码。这样FFmpeg就能正常读取中文文件名,避免了乱码问题。 需要注意的是,修改了CHCP命令后,可能会导致BAT文件中其他部分的输出乱码问题,可以根据具体情况适当调整代码页设置。 同时,在使用FFmpeg时,需要确保FFmpeg版本兼容UTF-8编码,可以根据需要选择适当的版本进行下载和安装。

    评论

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表