热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

解决java执行cmd命令调用ffmpeg报错Concaterror-Nosuchfilter'[0,0]'问题

最近公司有一个公交项目,要生成报站语音,采用的是报站前缀+站点名+报站后缀,3个MP3文件拼接的方式,拼接成一个完整的语音,且需要转码率

最近公司有一个公交项目,要生成报站语音,采用的是 报站前缀 + 站点名 + 报站后缀,3个MP3文件拼接的方式,拼接成一个完整的语音,且需要转码率和比特率,使用到了ffmpeg。

去网上找了一些ffmpeg相关的命令,参考:

安装命令参考

音频转码:

ffmpeg -i **.mp3 -ar 8000 -ac 2 -y -b:a 32k -vol 400 **.mp3

音频拼接:

//音频拼接
(1) ffmpeg -i "concat:test4.mp3|180_out.mp3" -acodec copy third.mp3 (third格式和first保持一致)
(2) ffmpeg -i "concat:first.mp3|second.mp3" -i second.mp3 -acodec copy test.mp3 -map_metadata 0:1 (third格式和second保持一致)
(3)ffmpeg -i test4.mp3 -i test5.mp3 -filter_complex '[0:0] [1:0] cOncat=n=2:v=0:a=1 [a]' -map [a] j5.mp3

音频混合:

//音频混合
ffmpeg -i 180_out.mp3 -i 181_in.mp3 -strict -2 -filter_complex amix=inputs=2:duration=longest:dropout_transition=2 -ar 8000 -ac 2 -y -b:a 64k -vol 2500 test.aac

ffmpeg下载地址:http://www.ffmpeg.org/download.html

当然,主要用到的还是音频转码和音频拼接。音频转码没问题,音频拼接的坑就来了......下面是公司项目主要用到的拼接语句:

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex '[0:0] [1:0] [2:0] cOncat=n=3:v=0:a=1 [a]' -map [a] -b:a 32k -ar 8000 4.mp3

重点关注这一段:-filter_complex '[0:0] [1:0] [2:0] cOncat=n=3:v=0:a=1 [a]'

在本机(Windows)和公司服务器(Linux)上都安装了ffmpeg,上面的拼接语句在服务器上(Linux)能拼接MP3成功,但在本机DOS命令运行报错:

解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

??肿么肥四!!回想windows和linux的区别,难道是目录的斜杆和反斜杠的问题??

把MP3路径的斜杆替换"/"为"\\",还是报错,一顿查找,发现是单引号和双引号的问题。

windows系统下,把 ' 改为 " 拼接成功。类似改为 -filter_complex "[0:0] [1:0] [2:0] cOncat=n=3:v=0:a=1 [a]"

linux系统,单、双引号都能拼接成功。

解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

那么好,Dos窗口能拼接MP3成功,java代码运行cmd就出问题了:在本机测试能成功拼接MP3文件,但放到服务器上去报错。↓

解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

No such filter: '"' Error configuring filters.

提示配置的过滤器错误,我把拼接条件又单独拿出来去Linux运行,拼接成功。

没办法,尝试把双引号改为单引号试试怎么样:

解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

No such filter: '[0:0]' Error configuring filters.

又是提示过滤器配置错误。同样,把拼接条件单独拿出来去Linux运行,拼接成功。


What!??去百度找答案,没有找到。回头看报错信息,单引号会报错到第一个空格,双引号则直接报错,那么我把中间的空格去掉,改成这样:

                   -filter_complex '[0:0][1:0][2:0]cOncat=n=3:v=0:a=1[a]'

dos窗口成功,java运行cmd命令失败,换成双引号呢?

                   -filter_complex "[0:0][1:0][2:0]cOncat=n=3:v=0:a=1[a]"

还是dos窗口成功,java运行cmd命令失败,去掉引号?

                   -filter_complex [0:0][1:0][2:0]cOncat=n=3:v=0:a=1[a]

成功!

回头再去百度了下,发现还真有"解决方案"(可能之前没好好找):

http://www.ffmpeg-archive.org/Concat-error-No-such-filter-0-0-td4654771.html#a4654803

解决java执行cmd命令调用ffmpeg报错Concat error - No such filter '[0,0]'问题

改成类似这样的(好多单引号):

                  -filter_complex '[0:0]' '[1:0]' '[2:0]' 'cOncat=n=3:v=0:a=1' '[a]'

报错,双引号呢?

               -filter_complex "[0:0]" "[1:0]" "[2:0]" "cOncat=n=3:v=0:a=1" "[a]"

也是报错。

不测了不测了,就用这个吧:

ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex [0:0][1:0][2:0]cOncat=n=3:v=0:a=1[a] -map [a] -b:a 32k -ar 8000 4.mp3

总结

到此这篇关于解决java执行cmd命令调用ffmpeg报错Concat error - No such filter ''[0,0]''问题的文章就介绍到这了,更多相关java执行cmd命令调用ffmpeg报错内容请搜索编程笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程笔记!


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
修成书君4212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有