2009-04-28 2 views
2

Я бы хотел конвертировать mp3 в более низкие битрейты, а также, возможно, конвертировать видео в mp3 с помощью Perl. Я просмотрел модуль ffmpeg, но не кажется, что он поддерживает преобразование файлов, единственный пример, который я видел, - это захват изображений из видеопотока. Есть ли способ сделать это в Perl, используя систему() для вызова ffmpeg?Могу ли я использовать ffmpeg внутри скрипта Perl без системного вызова?

ответ

0

Если вы находитесь на платформе, основанной на UNIX, я бы изучил использование Gstreamer. Он имеет привязки perl, и довольно просто настроить конвейер Gstreamer для преобразования аудио-видеоданных.

См. Например, Gstreamer perl bindings and converting ogg to mp3.

0

Существует проект под названием pacpl, который выполняет широкий спектр аудио и по меньшей мере некоторые видеоконверсии. Рассматривая источник, он использует команду system() для запуска сторонних утилит, таких как ffmpeg. Я заинтересован в том, чтобы делать конверсии, похожие на то, о чем вы просили, и я планирую попробовать pacpl.

До сих пор кажется, что нет чистых ответов на Perl. Все методы используют другое программное обеспечение для преобразования. Который говорит мне, что, вероятно, более эффективно использовать какую-то другую программу, написанную на C.

Итак, я вернул бы вопрос к вам: в чем причина, по которой вы не хотите использовать system()?

+1

Вы не хотите использовать систему, потому что она блокируется, пока она не будет выполнена. Это может быть долгое время, если вы конвертируете видео. –

0

Почему вы хотите избежать другого процесса? У меня есть сценарий Perl, который делает это для меня, и я развиваю процесс для каждого видео, которое я хочу преобразовать. Таким образом, я могу одновременно конвертировать несколько видеороликов, и моя главная программа Perl сделает все, что нужно.

Вам не нужно использовать систему, которая блокируется до ее завершения. Существует много других способов общения с внешними процессами. Подробнее см. Документацию perlipc.

0

См. Ответы на вопросы Perl backtics vs system vs exec для просмотра способов взаимодействия с внешними программами. Если вы ищете интерфейс Perl для этой программы, я бы предложил посмотреть на CPAN.