.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にご協力いただきありがとうございます!

関連情報