나는 mp3를 더 낮은 비트 전송률로 변환하고, 가능하면 Perl을 사용하여 비디오를 mp3로 변환하고 싶습니다. ffmpeg 모듈을 살펴 봤지만 파일 변환 기능이 지원되지 않는 것으로 나타났습니다. 내가 본 유일한 예는 비디오 스트림에서 사진을 가져 오는 것입니다. Perl에서 ffmpeg를 호출하기 위해 system()을 사용하여이 작업을 수행 할 수 있습니까?시스템 호출없이 Perl 스크립트에서 ffmpeg를 사용할 수 있습니까?
답변
시도해 보셨습니까 the FFmpeg module? transcode()
메소드는 원하는대로 작동합니다.
유닉스 기반 플랫폼을 사용하고 있다면 Gstreamer를 사용할 것입니다. 그것은 perl 바인딩을 가지고 있으며 오디오 비디오 데이터를 변환하기위한 Gstreamer 파이프 라인을 설정하는 것은 매우 간단합니다.
예제로 Gstreamer perl bindings and converting ogg to mp3을 참조하십시오.
pacpl
이라는 프로젝트가 있는데, 다양한 오디오 및 일부 비디오 변환을 수행합니다. 소스를 보면 ffmpeg
과 같은 타사 유틸리티를 실행하려면 system()
명령을 사용합니다. 귀하가 요청한 것과 유사한 전환을하는 데 관심이 있으며 직접 pacpl
을 사용해 볼 계획입니다.
지금까지 순수한 Perl 답이없는 것처럼 보입니다. 모든 방법은 다른 변환 소프트웨어를 사용합니다. 어떤 점에서 C로 작성된 다른 프로그램을 사용하는 것이 더 효율적이라고 말해줍니다.
그래서 나는 질문을 되돌려 줄 것입니다. system()
을 사용하지 않으려는 이유는 무엇입니까?
왜 다른 프로세스를 피 하시겠습니까? 나에게는이 작업을 수행하는 Perl 스크립트가 있고 변환하려는 각 비디오의 프로세스를 포크한다. 그렇게하면 여러 비디오를 동시에 변환 할 수 있고 필자의 주된 Perl 프로그램은 무엇이든해야한다.
시스템을 사용할 필요가 없습니다. 시스템은 완료 될 때까지 차단합니다. 외부 프로세스와 통신하는 다른 많은 방법이 있습니다. 자세한 내용은 perlipc 설명서를 참조하십시오.
외부 프로그램과 상호 작용하는 방법 목록은 Perl backtics vs system vs exec에 대한 답변을 참조하십시오. 해당 프로그램에 대한 Perl 인터페이스를 찾고 있다면 CPAN을 찾아 보시기 바랍니다.
- 1. 하나의 Perl 스크립트에서 다른 Perl 스크립트의 변수를 볼 수 있습니까?
- 2. Perl 프로젝트에서 자동 테스트를 사용할 수 있습니까?
- 3. Perl 변수에서 grep을 사용할 수 있습니까?
- 4. Perl 스크립트가 Amazon Cloud를 사용할 수 있습니까?
- 5. 다른 스크립트에서 bash 함수를 사용할 수 있습니까?
- 6. PowerShell 스크립트에서 RunWithElevatedPrivileges를 사용할 수 있습니까?
- 7. 자바 스크립트에서 PHP를 사용할 수 있습니까?
- 8. Greasemonkey 스크립트에서 작업자를 사용할 수 있습니까?
- 9. Perl 스크립트에서 stdin 및 stdout 시스템 명령을 캡처하는 방법은 무엇입니까?
- 10. 시스템에서 perl dll과 함께 vim에서 Perl을 사용할 수 있습니까?
- 11. 하나의 Perl 스크립트에서 다른 스크립트로 인수를 전달할 수 있습니까?
- 12. Perl 스크립트에서 일부 기능을 어떻게 재사용 할 수 있습니까?
- 13. Perl CGI 스크립트에서 PHP 페이지로 리디렉션 할 수 있습니까?
- 14. 어떻게 Perl 스크립트에서 네트워크 연결을 재설정 할 수 있습니까?
- 15. 리눅스에서 Perl 스크립트를 시스템 데몬으로 실행할 수 있습니까?
- 16. Perl 스크립트에서 Ctrl-Z를하는 방법
- 17. Perl CGI 스크립트에서 PHP의 $ _POST와 동일한 것은 무엇이며 어떻게 사용할 수 있습니까?
- 18. 스크립트에서 Bugzilla Perl API를 사용할 때 어떻게 인증 할 수 있습니까?
- 19. Objective-C에서 router mac (ARP에 대한 시스템 호출없이) 얻기
- 20. ffserver/ffmpeg를 사용할 때 TCP 연결이 거부되었습니다.
- 21. perl ptkdb 시스템 콜을 따르십시오.
- 22. Perl 스크립트에서 Python 스크립트 실행하기
- 23. Perl 스크립트를 프로그램 및 모듈로 사용할 수 있습니다.
- 24. Perl 스크립트에서 Awk를 사용하려면 어떻게해야합니까?
- 25. ant jUnit 작업에서 perl 단위 테스트를 실행할 수 있습니까? 개미 스크립트에서 perl 단위 테스트 오류를 처리하려면 어떻게해야합니까?
- 26. 누구든지 나를 위해 Windows에서 ffmpeg를 컴파일 할 수 있습니까?
- 27. 어떻게 Perl 변수 이름으로 변수의 값을 사용할 수 있습니까?
- 28. PHP에서 Perl CGI :: Sessions 데이터를 사용할 수 있습니까?
- 29. Perl DBD :: mysql 'mysql_use_result'다른 테이블에 삽입하는 동안 사용할 수 있습니까?
- 30. perl-mode colorization과 함께 cperl-mode를 사용할 수 있습니까?
시스템이 완료 될 때까지 차단되므로 시스템을 사용하고 싶지 않습니다. 동영상을 변환하는 경우 시간이 오래 걸릴 수 있습니다. –