FFmpeg クロスフェイド練習。acrossfade の挙動が仕様書どおりでない気がする。試行錯誤の末に次の方法を考える:

  1. 再生時間が 5.0000 秒のダミーの音声ファイルを二つ作成する
  2. いつもと同じコマンドラインだが acrossfadedurationoverlap の引数の組み合わせだけを変えて出力を得る
  3. 出力音声の尺を調べる

YouTube でサボる。

0:50 排便。

コマンドを実行しまくりデータを採取、検証する。

function acrossfade
{
    ns=$1
    o=$2
    out=./ns${ns}o${o}.m4a
    ffmpeg -hide_banner -loglevel error -y -i 0.mp4 -i 1.mp4 -filter_complex "
    [0:a]asetpts=PTS,asettb=AVTB[a0];
    [1:a]asetpts=PTS,asettb=AVTB[a1];
    [a0][a1]acrossfade=ns=${ns}:o=${o}:c1=qsin:c2=qsin" -vn -c:a aac ${out}

    ffprobe -show_format $out | grep -oP '(?<=duration=)([0-9.]+)'
}
d o 最終尺 (sec.)
0.0 0 10.032000
0.5 0 10.032000
1.0 0 10.032000
0.0 1 9.032000
0.5 1 9.532000
1.0 1 9.032000

次のことがわかった:

  • 精度の悪さ
  • overlap フラグは on にすると duration 時間を入力音声の尺の和から引いたものが出力音声の尺となる

次に出力音声を聴き比べて、フェイドがどういう効果をもたらしているかを己の耳で確かめる。フラグが off だと一瞬無音になる。そうでなければ入力の双方の音声が混合され、 その方式は c1, c2 から定まる。そういうことだ。

1:30 ああ疲れた。寝るまでインターネットを見る。

2:50 消灯。就寝。

9:05 起床。納豆、梅粥、バナナ。

9:35 歯を磨く。外出。

押上駅~東日本橋駅~小川町駅。万世橋。

10:15 秋葉原 HEY 二階。イルベロとビートマニアを二クレと二クレずつ遊ぶ。三階。麻雀ファイトガールを一クレ遊ぶ。コンティニューするつもり満々だったのに尿意を催して後回しにしてしまう。

12:15 退店。芳林公園へ移動。持参したおやつを食う。コッペパンコロッケ、つぶれメロンパン、うまい棒四本。

昌平まちかど図書館。『銃・病原菌・鉄』下巻アメリカ大陸の章を読む。この章の内容こそ本書の表題から真っ先に連想されるものだ。

秋葉原 HEY に戻る。イルベロ三クレ。ビートマニア八クレ。麻雀ファイトガール一クレ。今日の成果はビートマニアの真夏の花・真夏の夢 HARD クリアくらい。その他のゲー ム成績:

イルベロ

麻雀ファイトガール:

着順 点棒 終局時刻
1 35000 2024-04-21T14:41
2 16600 2024-04-21T11:53

17:10 退店。雨が降る前に移動を終えたい。白泉社前。小川町駅~馬喰横山駅~押上駅。

曳舟の部屋。PC を開く。

Calc Chapter 9 ノートの残りを片づける。きのうやり残した分量は適切だった。ワゴンセールまでの空き時間をいい感じに使えた。読書ノートへのマージまで済む。

19:55 外出。雨が降っているか。

20:05 コモディイイダ東向島店。536 円。

  • 中華点心弁当
  • 豆腐ハンバーグ重

曳舟の部屋。入浴。

風呂から出る。PC を開く。晩飯。豆腐、カットサラダ、中華弁当、バナナ。

21:20 歯を磨く。ローカルリポジトリーで Git 操作。そしてまだ残っているマークアップ修正地獄。

YouTube の再生が良くないので、インターネット接続に難儀していた頃にローカルディスクに溜め込んだ音楽ファイルを再生、聞きながら作業。

23:40 PC を閉じて外出。雨なので傘と長靴だ。

23:55 現場。プラスチックゴミを集積所へ。食品トレイを袋にいれる。網をかける。