.ts 비디오를 .mp4로 변환하고 파이프 찾기를 while 및 ffmpeg로 변환하시겠습니까?

.ts 비디오를 .mp4로 변환하고 파이프 찾기를 while 및 ffmpeg로 변환하시겠습니까?

.ts여러 개의 비디오 파일을 변환 하려고 하는데 .mp4파일을 찾을 때 find결과를 루프로 연결하여 각 파일에 대해 수행한 다음 이전 파일을 삭제해야 while할 것 같습니다. 변환된 파일입니다. 이것이 내가 find로 얻는 것입니다:ffmpeg.ts

$ find ./ -iname "*.ts"
./Parent-Dir/video1.ts
./Parent-Dir/video2.ts
./Parent-Dir/video3.ts
./Parent-Dir/video4.ts
..
..
.. about a 100 more videos ..

find루프로 이 작업을 수행 할 수 있나요 while?

find ./ -iname "*.ts" | while IFS= read video
do
  ffmpeg -i "${video}" -c:v libx264 -c:a aac "${video}".mp4 
  rm -f ${video}.ts
done

답변1

올바른 파일 이름을 얻으려면 변경해야 합니다.

ffmpeg -i "${video}" -c:v libx264 -c:a aac "${video}".mp4 

도착하다

ffmpeg -i "${video}" -c:v libx264 -c:a aac "${video%.*}".mp4 

다음과 같이 더 잘 사용할 수도 있습니다 for.

for video in **/*.ts

이것은 포착되지 않지만 .TS더 나은 검색을 처리합니다.

그리고 파일을 삭제할 때는 항상 따옴표를 추가하세요.

rm -f "${video}"

답변2

결국 이것은 나에게 완벽하게 작동합니다.

find ./ -iname "*.ts" \
  | while IFS= read -r video; do
    ffmpeg -nostdin -i "${video}" -c:v libx264 -c:a aac "${video%.*}".mp4
    rm -f "${video}"
  done

그것 에서 내가 찾던 것과 정확히 일치하는 video.ts것으로 변환됩니다 ! video.mp4에서 영감을 받다이 답변. @Romeo Ninov에게 도움을 주셔서 감사합니다!

관련 정보