FFmpeg の crossfade が時間内に実現できなかったのが悔しい。単品の関数の形式で処理を完成させる。 次のようなコードになるはずだ:

function video-xfade-naive
{
    local input0="${1:?Usage: $FUNCNAME INPUT_VIDEO_PATH0 INPUT_VIDEO_PATH1}"
    local input1="${2:?Usage: $FUNCNAME INPUT_VIDEO_PATH0 INPUT_VIDEO_PATH1}"
    local output=xfade.mp4
    local duration=1

    local ffmpeg_global_options="-v error -y -hide_banner"
    local offset=$(video-duration ${input0})
    local trim=$offset
    offset=$(echo $offset - $duration | bc)

    ffmpeg $ffmpeg_global_options \
        -i "${input0}" -i "${input1}" -filter_complex "
       [0:v][1:v]xfade=transition=fade:duration=${duration}:offset=${offset}[video];
       [0:a]atrim=0:${trim}[a0];
       [a0][1:a]acrossfade=d=${duration}[audio]" \
       -map "[video]" -map "[audio]" "$output"
}

実際にこれを数個のビデオに対して順次試すと、最後の方の音が消える。何かおかしい。 今晩はもうこれ以上いじれない。

3:00 消灯。就寝。

9:15 起床。洗濯機を回す。PC を開いて Windows Update をこなしておく。ディスクも空ける。 起きるときに食事をする気はなかったが、納豆とレーズンロール六個を食べる。 歯を磨いていると洗濯が終わり、それを干す。

メモリーに余裕があるところで MS Teams の会議室にファイルを添付することに再び挑む。失敗。 諦めてブラウザーを起動。転職・求人情報サイトの type のログインを復元。 明日の面接相手から着信。メールアドレスをゲットできたので、そちらで PDF を送信する。良かった。

作業をする気はなかったが、その気になったので FFmpeg ノートを進める。 混乱しがちなトリム系をまとめておく。

13:20 おやつ。まだ食うのか。

13:55 歯を磨く。FFmpeg 地獄。

15:00 眠い。YouTube を観てごまかす。

15:20 若干の便意を催す。イトーヨーカドー曳舟店に出る。体温チェックとトイレ。 部屋に戻って寝る。

18:50 起床。PC を開いて時間つぶし。

19:55 なぜ一時間もドラクエを観ているのか。PC を閉じて外出。

20:15 コモディイイダ東向島店。651 円。

  • ビビンバ牛カルビ丼
  • ツナ&タマゴサンド
  • バターロール (5)

曳舟の部屋。入浴。

風呂から出て PC を開く。晩飯。

【WRとアリーナ】ウィークリーの曲3200点出したいしARENAもやりたいのでどっちも頑張りますの回【音ゲー / beatmania IIDX / RESIDENT / DOLCE.】 - YouTube: Bad Encryption の ANOTHER 譜面のスコアがなぜか伸びない。

21:35 歯を磨く。FFmpeg ノートを進める。

フィルター xstack のオプション grid がない。

ようやく ffmpeg の標準出力への出力を ffplay の標準入力にパイプさせるやり方を知る:

function video-preview
{
    if [ -t 0 ]; then
        local input="${1:?Usage: $FUNCNAME INPUT_VIDEO_PATH}"
    else
        local input="-"
    fi

    local ffplay_global_options="-v error -hide_banner"
    local ffplay_input_options="-autoexit -x 240 -y 320"
    ffplay $ffplay_global_options $ffplay_input_options "$input"
}

23:50 コマンドを叩き過ぎて疲れた。今晩はこれまで。