ffmpeg 및 sed를 사용하는 Bash 스크립트

ffmpeg 및 sed를 사용하는 Bash 스크립트

그래서 bash에서 concat_files.txt의 각 줄 시작 부분에 상대 경로를 추가하는 스크립트를 작성하려고 합니다. 그런 다음 모든 파일을 연결하고 경로 변수에 정의된 동일한 디렉터리에 출력 파일을 저장하려고 합니다. 지금까지 sed 명령은 잘 작동하고 있습니다. 출력 파일 앞에 경로를 삽입하는 방법만 알아내면 됩니다. 가장 쉬운 방법은 현재 디렉터리에서 파일을 연결하고 출력 파일을 경로 변수로 이동하는 것입니다. 하지만 현재 디렉터리에 위치가 충분하지 않으므로 이는 옵션이 아닙니다.

#!/bin/bash

# Script that concatenates all the files defined in concat_files.txt

path=/mnt/disk/video_evaluation/XDROOT/Clip/

sed -i "s@^@file '$path@" concat_files.txt
sed -i "s/$/'/" concat_files.txt


ffmpeg -f concat -i concat_files.txt -c copy $path/output.mxf

스크립트에 대한 또 다른 개선 사항은 특정 확장자를 가진 모든 파일을 선택하여 파일에 넣을 수 있다는 것입니다. 그런데 이것도 어떻게 해야할지 모르겠네요...

답변1

실제로 @fox가 맞습니다. 스크립트는 잘 실행됩니다. 그가 제안한 변경 사항을 수용하기 위해 약간 수정했습니다.

#!/bin/bash

# Script that concatenates all the files defined in concat_files.txt
path=/mnt/disk/video_evaluation/XDROOT/Clip/

sed -e "s@^@file '$path@" concat_files.txt > new.txt
sed -e "s/$/.MXF'/" new.txt > final.txt
ffmpeg -f concat -safe 0 -i final.txt -c copy $path/output.mxf

이제는 특정 확장자를 가진 파일을 파일에 추가하는 기능이 없습니다.

관련 정보