地獄の伯爵令嬢の逆襲のサブシナリオ撮影ビデオを確認。 FFmpeg をいじっている目的を忘れそうになった。最終戦を二本撮っているのは何でだったか忘れた。 麻雀の練習を少ししてから寝るだろう。

9:30 起床。安くて買ったハッシュドビーフが朝来うと重い。PC を持って外出。 コンビニに寄って雑誌チェック。しかしこの時間なのに同志多数で見送り。

10:15 八広図書館。朝刊(東京)を読んで入館。10:25 着席。

12:15 退館。イトーヨーカドー経由で 13:00 曳舟の部屋に戻る。PC を戻す。 FFmpeg のフィルターの学習。音声フィルターを中心に調べていく。

14:05 おやつ休憩&麻雀の練習。それが終わったら先ほどの続き。 作成した音声ファイルを片っ端からチェックして 15:05 終わる。少し昼寝。

17:00 約束通り、応募先から電話。15 分ほど案件探しについて打ち合わせ。 他の会社も一次面接をこういうふうに簡略化すればいいのに。 職務経歴書を編集可能な書式のファイルにコンバートしてメール送信。案件を見つけられるものなら見つけて欲しい。

17:45 外出。押上駅バス停まで移動したらすぐにバスが来てありがたい。太平四丁目で降りてオリナスへ行く。

18:15 タイトー F ステーションオリナス錦糸町店。 時間がないが MJ プロ卓東風戦に 3 クレ突っ込む。こんな状態で勝てるはずがかった。

【SCORE】
合計SCORE:-78.1

【最終段位】
四人打ち段位:魔神 幻球:4

【2/22の最新8試合の履歴】
1st|--------
2nd|----*---
3rd|-----**-
4th|-------*
old         new

【順位】
1位回数:0(0.00%)
2位回数:1(25.00%)
3位回数:2(50.00%)
4位回数:1(25.00%)
平均順位:3.00

プレイ局数:21局

【打ち筋】
アガリ率:14.29%(3/21)
平均アガリ翻:1.67翻
平均アガリ巡目:11.67巡
振込み率:9.52%(2/21)

【2/22の最高役】
最高役のデータがありません。最高役は、跳満以上のアガリが対象となります。

ビートマニアに 2 クレ突っ込む。レベル 11 の New Decades などのクリアランプを点灯。

19:50 カスミオリナス錦糸町店。433 円。

  • オクラ茄子丼
  • さんまの天ぷら
  • ブラックチョコ
  • ライス

20:15 ビッグエー墨田業平店。193 円。

  • ソーセージパン
  • コッペパンジャム&マーガリン
  • ポテコうましお

20:25 曳舟の部屋に戻る。PC 前に座ってこれを書いたり家計簿を書いたりする。 それから晩飯。麻雀の練習。

裏乗りすぎ

今月も残り少ない通信量の携帯電話でテザリング。

21:30 風呂まで FFmpeg をいじる。Examples がないフィルターにも挑む。 そういう場合、たいてい元の音源との差が生じない。ファイルサイズまで同じ。 あと、この作業をやっていると soejima1000 プレイリストを再生できないので刺激がない。

22:40 風呂から出る。ヘルプに例がないフィルターはあとで検索してから試したほうが効率が良さそうだ。 今日はいったん調査を打ち切って、何か加工して Twitter にアップロードしてみよう。 背景がベタなのはデータ軽量化のため必須。と思ったが、同寸法の画像でもファイルサイズは変わらないかもしれない。

FFmpeg Note

フィルターグラフの概念を理解したら、フィルターの記述の感じを体で覚える。 以下、怒ってた猫のビデオの冒頭 10 秒を切り出した MP4 を入力として実験。

  • -af: Audio Filters
    • acompressor: mainly used to reduce the dynamic range of a signal.
      • acompressor=level_in=32:threshold=0.5:ratio=5:attack=1: 違いがよくわからない。
    • acontrast: Simple audio dynamic range compression/expansion filter.
      • acontrast=contrast=66: よくわからない。
    • acopy: これは試す必要なし。
    • adeclick: Remove impulsive noise from input audio.
    • adeclip: Remove clipped samples from input audio.
    • adelay=1500|0|500: 輪唱のような感じだ。
    • aecho=0.8:0.9:1000|1800:0.3|0.25: 当たり前だが delay 効果と似ている。
    • aeval: Modify an audio signal according to the specified expressions. これは少し高級な効果かもしれない。
      • aeval=val(ch)/2:c=same: 音量を半減する。
      • aeval=val(0)|-val(1): チャンネル 0 はそのままに、チャンネル 1 の位相を反転する。
    • aemphasis: パラメータのいじり方がわからない。
    • afade: Apply fade-in/out effect to input audio. 想像通り。
      • afade=t=in:ss=0:d=5: 冒頭 5 秒間フェイドイン。
      • afade=t=out:st=5:d=5: 終了間際 5 秒間フェイドアウト。
    • afftdn: ノイズ除去。わずかに聴きやすくなった。
    • afftfilt: Apply arbitrary expressions to samples in frequency domain. Fourier 変換を応用したかなり高級なフィルターと思われる。したがって引数が複素数だ。
      • afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'": ほとんど聞こえなくなる。
      • afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75": これは猫の声が宇宙人みたいになって、台詞と相まって笑える。
      • afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8": これも捨てがたい。
    • agate: わからない。
    • aiir: Apply an arbitrary Infinite Impulse Response filter.
      • aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d: 変わらない?
      • aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s: 変わらない?
      • aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d: 落ちる。
    • aloop: Loop audio samples.
      • aloop=loop=3:size=30*44100: 3 回ループしてもう一回鳴き声がする。
    • anequalizer: High-order parametric multiband equalizer for each channel.
      • anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1: 変わらない?
    • anull: Pass the audio source unchanged to the output. したがって試す必要なし。
    • apad: Pad the end of an audio stream with silence.
      • apad=pad_len=1024: 変わらない?
      • apad=whole_len=10000: 変わらない?
    • aresample: Resample the input audio to the specified parameters.
      • aresample=async=1000: 変わらない?
    • areverse: Reverse an audio clip. 音声データ全体をメモリーに読み込むので注意。
      • atrim=end=5,areverse: ラスト 5 秒を逆再生。赤ちゃんのような声になった。
    • asetnsamples: Set the number of samples per each output audio frame.
      • asetnsamples=n=1234:p=0: 変わらない?
    • atempo: Adjust audio tempo.
      • atempo=0.8: テンポが遅くなる。総再生時間も 12 秒に増える。
      • atempo=3: 3 倍速。
      • atempo=sqrt(3),atempo=sqrt(3): 結局 3 倍速。
    • atrim: Trim the input so that the output contains one continuous subpart of the input.
      • atrim=3:6: 中央を含む 3 秒を切り出せた。
      • atrim=end_sample=1000: ほとんど何も残らない。
  • -vf
    • scale 640:360: 想像通りの出力が得られる。
  • -filter_complex
    • acrossover=split[1500]: Split audio stream into several bands. -map で二つの音声ファイルに出力する。