動画や録音を聞いて文字起こしするときは60秒間隔で分割するとやりやすいです。ffmpegだとWindows10でもLinuxでも同じコマンドで簡単に分割できました。
ffmpegのインストール
KDE neonならmuonからffmpegをインストールします。
【Windows】Windows10にffmpegをインストールする - ソースに絡まるエスカルゴ
Windows10にはこの説明の通りBuilds - CODEX FFMPEG @ gyan.devからffmpeg-release-full.7zをダウンロードしてパスを設定しました。
動画ファイルを60秒ずつに分割する
How to automatically segment video using ffmpeg without re-encoding? - Ask
Ubuntu
ffmpeg -i input.mp4 -map 0 -c copy -f segment -segment_time 60
-reset_timestamps 1 output_%03d.mp4
これでmp4ファイルを60秒毎に分割できました。
キーフレームで分割するので正確に60秒でないときもあるそうです。
オプションについて勉強してみます。
-map 0
変換元の動画のどのストリームを選択して変換するかのオプション。
mp4ファイルはビデオと音声のそれぞれ複数のストリームを含むことができるらしいです(Can video have multiple streams (like it has 2 audio streams) - Video Production Stack Exchange)。
-map 0はすべてのストリームを選択します。
-c copy (-codec copy)
コーデックを指定するオプション。
-c copyで再エンコードせずにコピーします。
-f segment
ファイルのフォーマットを指定するオプション( 5.4 Main options)。
フォーマットにはmuxerも指定できます(FFmpeg Formats Documentation)。
-f segmentでmuxerのsegmentを指定しています。
segment muxerについては詳細な分割設定ができる Segment | ニコラボに解説があります。
以下はsegment muxerのオプションになります。
-segment_time 60
分割する間隔を秒数を指定します。デフォルトは2。
-reset_timestamps 1
分割後のセグメントのタイムスタンプ(PTS)をリセットします。引数はブーリアンでデフォルトは0(つまり無効)。PTSの意味はffmpeg を使うなら知っておきたい話 PTSとかDTSの話:音ずれ問題や時間が変になるときのために ヽ(゚ー゚*ヽ)(ノ*゚ー゚)ノわぁい - Qiitaの解説がわかりやすいです。
音声ファイルを60秒ずつに分割する
このページに書いてあるように次のコマンドで分割できました。
ffmpeg -i input.mp3 -f segment -segment_time 60 -c
copy output_%03d.mp3
音声ファイルでは-reset_timestamps 1 オプションは不要のようです。
動画を指定時間でカットする
この解説がわかりやすいです。
ffmpeg -i input.mp4 -t 00:02:33 -c copy output.mp4
00:02:33までを出力します。
ffmpeg -ss 00:09:17 -i input.mp4 -c copy output.mp4
00:09:17までを削除します。
ffmpeg -ss 00:01:10 -to 00:01:40 -i input.mp4 -c copy output.mp4
1:11から1:40までを出力します。
GUIでffmpegを操作する
LosslessCut
KDE neonのDiscoverで検索してでてきたLosslessCutのSnap版3.39.0をインストールしてみました。アプリケーションランチャーではユーティリティに分類されていたのでマルチメディアに変更しました。
使い方はこのページに詳しいです。
分割と結合はわかりましたが、「60秒毎に分割」というやり方はわかりませんでした。このGUIで実行したffmpegのコマンドはヘルプ ー> ヘルプとショートカット ででてくる画面の一番下にある「最近のFFMPEGコマンド」で確認できます。
0 件のコメント:
コメントを投稿