我想将mp3转换为较低的比特率,以及可能使用Perl将视频转换为mp3。我查看了ffmpeg模块,但似乎它不支持转换文件,我看到的唯一例子是从视频流中抓取图片。有没有办法在Perl中使用system()来调用ffmpeg?
答案 0 :(得分:2)
试过了the FFmpeg module? transcode()
方法看起来会做你想做的事。
答案 1 :(得分:0)
如果您使用的是基于unix的平台,我会考虑使用Gstreamer。它具有perl绑定,并且设置用于转换音频视频数据的Gstreamer管道非常简单。
答案 2 :(得分:0)
有一个名为pacpl
的项目,可以播放各种音频和至少一些视频转换。查看源代码,它确实使用system()
命令运行第三方实用程序,例如ffmpeg
。我有兴趣进行类似于你问的转换,我打算自己尝试pacpl
。
到目前为止,似乎没有纯粹的Perl答案。所有方法都使用其他一些转换软件。这告诉我使用C编写的其他程序可能更有效。
所以我会回答你的问题:你不想使用system()
的原因是什么?
答案 3 :(得分:0)
为什么要避免另一个进程?我有一个Perl脚本,它为我做这个,我为每个要转换的视频分叉一个进程。这样我就可以同时转换几个视频,并让我的主Perl程序做任何其他需要做的事情。
您不需要使用系统,系统会在完成之前阻塞。还有许多其他方法可以与外部流程进行通信。有关详细信息,请参阅perlipc文档。
答案 4 :(得分:0)
查看Perl backtics vs system vs exec的答案,了解与外部程序交互的方法列表。如果您正在寻找该程序的Perl接口,我建议您查看CPAN。