Metadata-Version: 2.1
Name: ezffmpeg
Version: 6.11.27
Summary: ffmpegの動画編集機能のうちよく使う機能に特化したフロントエンド
Home-page: https://ezffmpeg.inblank.net
Author: hide
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown

ezffmpegについて

ezffmpegはffmpegの機能のうちで比較的よく使うと思われる動画変換処理用のフロントエンドです。当然ながら、ffmpeg(ffprobeを含む)がインストールされていなければ動作しません。


１．このフロントエンドでできること

(1)元動画から出力先の動画に格納すべきストリーム（映像、音声、字幕）を選択できます。
（ただし、出力先のコンテナによっては選択したストリームの全部又は一部が格納されない場合があります。）

(2)元動画の一部を時間切り出しできます。
切り出しを開始する時間と切り出す時間長を指定します。時、分、秒で指定しますが、秒単位で正確に切り出しできるわけではありません。

(3)映像コーデックを変更できます。
コーデックの指定方法は、コンボボックスで選択（選択したコーデックをさらに編集）するか、直接入力します。出力先ファイルが指定されている場合は、その拡張子によって対応可能な主なコーデックがコンボボックスの選択肢にリストされます。ただし、コーデックの編集や出力先のコンテナの選択により、指定したコーデックが未対応となる場合があります。
なお、コーデック選択肢のうち'libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p'については、mp4コンテナで標準的な（ほとんどのプレーヤーで再生可能な）コーデックの指定の例です。

(4)映像の解像度を変更できます。
アスペクト比を維持した変更に限ります。元動画の解像度を元に主な解像度がコンボボックスの選択肢にリストされますが、直接入力することも可能です。ただし、直接入力の場合は、映像の横幅又は高さのいずれか一方を指定し、他は-1と指定します。

(5)映像領域の一部を切り出しできます。
切り出し開始位置（x,y）と切り出すサイズ（w,h）を指定します。

(6)音声コーデックを変更できます。
 コーデックの指定方法は、コンボボックスで選択（選択したコーデックをさらに編集）するか、直接入力します。出力先ファイルが指定されている場合は、その拡張子によって対応可能な主なコーデックがコンボボックスの選択肢にリストされます。ただし、コーデックの編集や出力先のコンテナの選択により、指定したコーデックが未対応となる場合があります。

(7)音声ボリュームを補正できます。
現在のボリュームからの増減値を指定してdB補正します。

(8)その他
1)ffmpegの実行コマンドラインをクリップボードにコピーできます。
クリップボードに出力されるのはボタンが押された時点のコマンドラインですので端末などからそのまま実行するとエラーとなる場合があります。例えば出力先が指定されていなければ出力先のないコマンドラインが生成されますので、そのまま端末などから実行するとエラーとなります。

2)実行中の変換作業を中止できます。
中止ボタン（変換実行ボタンを上書きします）により中止します。中止した場合の出力先ファイルの状態は不明です。なお、中止ボタンに進捗率を表示します。

3)出力先ファイルは上書きされます。
変換実行に際して出力先に同名のファイルがあっても警告なしに上書きします。ただし、出力先を指定する際に既存のファイル名を指定するとtkinterデフォルトの英語メッセージは表示されます。


２．コンボボックスの選択肢用のコーデックや拡張子の編集
extcodecs.pyを編集して、映像、音声のコーデックと拡張子の関係を更新できます。コーデックの選択肢の編集や新たな拡張子、対応コーデックの追加・変更ができます。
なお、extcodecs.pyにおいて拡張子とコーデックの関係に誤りがある場合は修正しますが、新たな拡張子やコーデックの追加の予定はありません。直接入力も可能ですし、すべてを網羅する目的ではありませんから。


３．追加モジュールについて
(1)pillow
以前、pythonにpillowをインストールしたとき、ImageTkモジュールを別途インストールしなければtkinterで使えなかった。しかし、どういうわけか、現在（python3.10,pillow10.0）はpillowをインストールすればImageTkモジュールも使える状態になっているようだ。

(2)tkinter
tkinterはpythonの標準モジュールなのでpythonがインストールされている環境なら必ず入っていると信じていたが、理由はわからないがtkinterがインストールされていないpythonの環境もあるようだ。実際、仮想OSとしてインストールしたubuntu22.04の中にインストールされていたpython3にはtkinter（venvも）は入っていなかった。やむなく'sudo apt install python3-tk'でインストールした。setup.pyのinstall_requiresにはpillowしか指定していないので、不幸にもtkinterがインストールされていない環境の方はaptで別途インストールしてください。

４．今後の予定
(1)アスペクト比を維持せずに解像度を変更する--（誤ったアスペクト比になっている動画の修正を試みる目的です。）
(2)英語バージョン（必要ないかも）

５．変更履歴
6.8.6 --> 6.11.27
　動画ファイルを読み込んだときに最大音量を計測するのに時間がかかっていたので最大音量の計測を省略した。それに、音が大きすぎるとか小さすぎるとかの不満があるから調整するのであって、それには最大音量がいくらかというのは関係がないと思われるため。

　
