![ffmpeg를 사용하여 선택한 오디오 파일을 vifm으로 변환](https://linux55.com/image/176835/ffmpeg%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%84%A0%ED%83%9D%ED%95%9C%20%EC%98%A4%EB%94%94%EC%98%A4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20vifm%EC%9C%BC%EB%A1%9C%20%EB%B3%80%ED%99%98.png)
ffmpeg를 사용하여 vifm에서 선택한 모든 오디오 파일을 변환하는 명령을 만들려고 합니다. 이것이 내가 지금까지 시도한 것입니다:
command opus ffmpeg -i %f -q 7 %f:s|flac|opus|
그러나 여기에는 두 가지 문제가 있습니다.
첫째, 파일을 하나만 선택한 경우에만 작동합니다. 예를 들어 두 개를 선택하면 ffmpeg는 File 'foo.flac' already exists. Overwrite ? [y/N]
두 번째 파일이 어디에 있는지 묻는 질문으로 중지됩니다.foo.flac
둘째, 원본 파일의 확장자가 .인 경우에만 작동합니다 flac
. (예제에서는 vifm의 교체 매크로를 사용하여 파일 이름 flac
을 로 바꾸었습니다 opus
.) 또한 다른 확장자를 포함하는 방법도 모르겠습니다.
답변1
몇 시간의 시행착오 끝에 마침내 알아냈습니다.
bash 스크립트를 별도의 파일에 작성합니다. 예 ffmpeg-opus.sh
:
#!/bin/bash
for file; do
ffmpeg -i "$file" -ab 128k "${file%.*}".opus
done
이에 대한 명령을 작성하십시오 vifmrc
.
command opus ffmpeg-opus.sh %f