2

私はLinuxスクリプトの初心者であり、Webから取得したスクリプトに問題があり、変更しようとしています。

これがスクリプトです

#!/bin/bash
if (($# ==0))
then
    echo "Usage: flvto3gp [flv files] ..."
    exit
fi

while (($# !=0 ))
do 
    ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg   /home/zavids/rawvids/thumbs/$1.jpg
    shift
done
echo "Finished"
echo "\"fakap all those nonsense!\""
echo ""

だから私はビデオからスクリーンショットを取得し、それをjpegとして保存しています。問題は、ビデオファイルの拡張子が保持されるため、完成したファイルはvideo.flv.jpg(たとえば)です。どうすればそのビデオ拡張機能を取り除くことができますか?

4

2 に答える 2

2

この行を変更します

ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg   /home/zavids/rawvids/thumbs/$1.jpg

これに

ffmpeg -ss 00:00:10 -t 1 -s 400x300 -i $1 -f mjpeg /home/zavids/rawvids/thumbs/${1%.*}.jpg

これにより、入力ファイルから拡張子が削除されてから、bashパラメーター展開を使用して出力ファイルの名前が作成されます。

于 2012-06-22T13:38:20.163 に答える
0

あなたはこれを使うことを試みることができます:

${string%substring}

$stringの後ろから$substringの最短一致を削除します。

あなたの場合:

${1%.flv}

このコードは、最初の引数の末尾から.flvを置き換えます。

ここでも多くの詳細を知ることができます:http://tldp.org/LDP/abs/html/string-manipulation.html

于 2012-06-22T13:39:10.270 に答える