[概要]
シェルスクリプトのクリックで起動。KDEのkdialogを使って、ディレクトリ/home/usr/Videoから mp2t/tsのファイルを表示。選んだファイル1個を ffmpegで 同名.mp4に変換する。入力ファイルのサイズが大きいとkdialogが固まったようにみえるので、KDE konsoleを表示して ffmpegの標準エラー出力と pv(pipe viwer)の進捗状況を表示。キャンセルで終了。
[材料]
KDE kdialog, konsole (Gnomeならgnome-terminal, zenity), pv, ffmpeg
[ts2mp4.shの中身] 基本的なとこだけ
#! /bin/bash
while true
do
infile=$(kdialog --title ts2mp4 --getopenfilename '/home/usr/Video/' 'video/mp2t video/mpeg')
if [ "$?" = "0" ]; then
konsole -e $SHELL -c "pv '$infile' | ffmpeg -i pipe:0 -codec copy \"${infile%.*}.mp4\" ; echo \"...Finished\"; sleep 3"
# trash-put "$infile"
elif [ "$?" = "1" ]; then
kdialog --title ts2mp4 --passivepopup "CANCEL" 3
exit $?
else
kdialog --title ts2mp4 --error "ERROR";
exit $?
fi;
done
[説明]
・ffmpeg用のGUI メディアコンバーター: winff-qtをインストールすれば済む話。
・ディスクトップ環境KDEで、シェルスクリプトからGUIモドキが使える kdialogを使用。gnomeではZenityを使う。
・KDEのkonsoleは、xtermだと、xterm -e "pv $infile | ffmpeg -i pipe:0 -codec copy \"${infile%.*}.mp4\" ; echo \"...Finished\"; sleep 3" となる。
・pv はインストール要。
・ffmpegのオプション pipe:0 標準入力, 1:標準出力, 2:エラー出力, ":-"または ": " 自動判定。
・pv はあくまで目安程度。瞬間表示で見難いけどバーが伸びていって%表示や残り時間を表示。
・KDE:trash-cli をインストールすると、元ファイル.tsをゴミ箱に送れる $ trash-put "$infile"
・kdialog --progressbar ...は、awkの変数をシェルスクリプトにうまく渡せないのでヤメた。
環境は "2020年11月27日金曜日"の下の方
以上、素人の使い捨て道具
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。