Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Okayama.なんか #5 : Okayama.Process
Search
Takeshi FURUSATO
June 01, 2025
Technology
0
54
Okayama.なんか #5 : Okayama.Process
2025年6月1日に開催されたOkayama.なんか #5 : Okayama.Processで登壇した資料。
「大型イベントの大量セッション動画編集をエクシェル芸で効率化、爆速公開した話」
Takeshi FURUSATO
June 01, 2025
Tweet
Share
More Decks by Takeshi FURUSATO
See All by Takeshi FURUSATO
Okayama WordPress Meetup #12 | そのバックアップ、本当に復元できますか? リストアやってみた!
takeshifurusato
0
130
JAWS DAYS 2025 ボランティアスタッフ統括やってみた!
takeshifurusato
0
96
「DenimTech」 ITエンジニアとして岡山で働く理由 ※ふるさとの場合
takeshifurusato
0
10
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
370
kintone Café 岡山 vol.7 × SORACOM UG Okayama vol.4 オープニング
takeshifurusato
0
60
kintoneでIoTデータを収集してみた
takeshifurusato
0
150
20210525 TwilioJP-UG Online TwilioSync
takeshifurusato
0
290
FAXによる二要素認証
takeshifurusato
0
440
20201205_OkayamaWordPressMeetup#6_relocate_wordpress
takeshifurusato
0
350
Other Decks in Technology
See All in Technology
本が全く読めなかった過去の自分へ
genshun9
0
550
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
400
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
350
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
0
120
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
210
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
17
5.7k
PostgreSQL 18 cancel request key長の変更とRailsへの関連
yahonda
0
120
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
470
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
210
HiMoR: Monocular Deformable Gaussian Reconstruction with Hierarchical Motion Representation
spatial_ai_network
0
110
プロダクトエンジニアリング組織への歩み、その現在地 / Our journey to becoming a product engineering organization
hiro_torii
0
130
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
900
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Navigating Team Friction
lara
187
15k
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
How STYLIGHT went responsive
nonsquared
100
5.6k
Producing Creativity
orderedlist
PRO
346
40k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Adopting Sorbet at Scale
ufuk
77
9.4k
Transcript
2025-06-01 14:00〜18:00 Takeshi Furusato 【Okayama.なんか #5】Okayama.Process #okanan 大型イベントの大量セッション動画編集を エクシェル芸で効率化、爆速公開した話
株式会社DIGITALJET プログラマー AWS Samurai 2022 JAWS-UG Okayama コアメンバー JP_Stripes Okayama
コアメンバー Okayama WordPress Meetup オーガナイザー SORACOM UG Okayama コアメンバー 自称めんツナかんかんエバンジェリスト 古里 武士 Takeshi Furusato #okanan
今回の話とは関係ないけど、 、 、 自称エバンジェリスト活動をこじらせまして、 、 、 レシピブログを書籍化しました(配布済・在庫切れ) 【宣伝】レシピブログを書籍化 #okanan 「
めん ツナ かん かん レシピ」で検索
本日のゴール ここでのエクシェル芸とは、 、 、 「Excel(スプレッドシート) ✕ Shell生成芸」 ですw Excel(スプレッドシート) のセル参照を使って、Shellコマ
ンドを生成して作業の効率化をしてみましょうー。 ※ちなみに逸般的な「エクシェル芸」とはExcelファイルをShellコマンドでゴリゴリに改 変・加工する芸のことを指し、本件とは異なる場合があります。ご注意ください。 #okanan
今回ご紹介する例 コロナ禍〜現在にて、JAWS-UGのオンライン・オフライ ンイベントのセッション動画をアーカイブ →1週間〜1ヶ月以内でYouTubeで公開したい →イベント終了後、熱が冷める前にアーカイブ公開 JAWS DAYS 2021:62本 JAWS PANKRATION
2021:70本 JAWS DAYS 2022:67本 JAWS DAYS 2024:44本 JAWS PANKRATION 2024:76本 JAWS DAYS 2025:41本 #okanan
JAWS-UG YouTube https://www.youtube.com/@awsjcommunitymeetups #okanan 編集・公開しました!!
JAWS-UGとは AWS-UGとは、AWS (Amazon Web Services) が提供す るクラウドコンピューティングを利用する人々の集まり (コミュニティ)です。 #okanan
▪JAWS FESTA 2025 in Kanazawa 日時:2025/10/11(土) 10:00- ?? https://jawsfesta2025.jaws-ug.jp/ まだ非公開ですけど、
、 、 ▪JAWS-UG Okayama 2025 日時:2025/08/30(土) 13:00-17:00 場所:ここ!(倉敷物語館 2F 会議室) 【宣伝】JAWS-UG イベント #okanan
JAWS DAYS 2021、2022 コロナ禍、対面イベントができないなか、フルオンライン で開催 4トラックのオンラインセッションをリアルタイム配信 ※OBS+Amazon IVS+AWS Elemental MediaLive
※StreamYard+Amazon IVS 1つのコミュニケーションスペースによる企画 1つのハンズオントラック https://jawsdays2021.jaws-ug.jp https://jawsdays2022.jaws-ug.jp #okanan
JAWS PANKRATION 24 時間オンライングローバルイベント JAWS-UG 支 部 だ け で
な く 、 世 界 中 の AWS HERO 、 AWS Community Builder、AWS User Group Leader、その他 AWS タイトルホルダーに、AWS 内の方を招待して、各国の AWS に関 するカルチャーや AWS に関するテクニカルトークなど様々なセッ ションを開催 ※OBS+Amazon IVS+AWS Elemental MediaLive https://jawspankration2021.jaws-ug.jp https://jawspankration2024.jaws-ug.jp #okanan
録画データ AWS Elemental MediaLive のデータ →各トラックごと、200MB毎のtsファイル (110ファイル ✕ 200MB) StreamYardのデータ
→各トラックごとのmp4ファイル (20GB位) #okanan
やりたいこと 各セッション毎に動画を切り出してYouTubeに公開! AWS Elemental MediaLive のデータは、200MB単位のtsファイル なので、一旦1トラック1つのmp4ファイルにつなぎ合わせる StreamYardのデータは、各トラックごとのmp4ファイルのまま。 1つのmp4ファイルからセッション毎に切り分けたい。 #okanan
TODO: DaVinci Resolveの いい感じの画像をいれる。 とりあえず。 。 。 どうやって切り出す??? →動画編集ソフト(DaVinci Resolve)で切って書き出し
#okanan 60以上あるセッションをGUIで切って書き出しは辛い。 。 。
GUIは辛いので。 。 。 。CLIを使ってできないかな?? →ffmpeg使えばいいじゃん!! https://ffmpeg.org/ 無料・オープンソースの動画/音声処理ツール CLI(コマンドライン)で動作する強力なツール 入力 →
フィルタ処理 → 出力、の流れ 世界中の動画編集・変換・配信で使われている みんな大好きffmpeg #okanan
オプションの説明 -ss:開始時間(例:00:05:00) -t:抽出時間(例:00:10:00、もしくは秒数) -i:入力ファイル名 -c copy:再エンコードせずコピー(高速) ffmpegで切り出し ffmpeg -ss [開始時刻]
-t [抽出時間] -i [入力ファイル] -c copy [出力ファイル] #okanan
一括切り出しするようにコードを書いても良いけど。 。 。 誰でも自由にできるようにしたい。 →スプレッドシートなら誰でも操作できる。 誰でも編集ができるように #okanan
各セッションの開始時刻・終了時刻を入れたらOK 長さセル: =H4-G4 コマンドセル: ="ffmpeg -ss "&TEXT(G4,"HH:mm:ss")&" -t "& TEXT(I4,"HH:mm:ss")
&" -i "&$C$1&" -c copy "&F4 誰でも編集ができるように #okanan ffmpeg -ss 00:32:16 -t 00:19:26 -i ../tracka.mp4 -c copy A00.mp4
今回作業した一連の作業についてデモをします。 開始時刻、終了時刻を確認して入力 コマンドを実行する ※スプレッドシートの解説なども行います。 デモします #okanan
タイトル:=$E$1&A5&" "&B5 詳細:=$F$1&CHAR(10)&"登壇者:"&C5&CHAR(10)&D5 YouTubeタイトル、概要欄 #okanan
この仕組みで、以下のイベントの動画編集は乗り切れた! イベント終了後、内部のチェックも経て、1,2週間程度で公 開しました。 JAWS DAYS 2021:62本 JAWS PANKRATION 2021:70本 JAWS
DAYS 2022:67本 JAWS PANKRATION 2024:76本 JAWS DAYS 2025:41本 効率化できたー! #okanan
JAWS DAYS 2024は、東京では5年ぶりに、1つの会場に 集まって行うリアルイベント!! リアルイベントならではの構成で困った。 。 。 。 困った。 。
。 。 #okanan
a).後方カメラ 映像:登壇者を望遠で撮影 音声:カメラ付近のガヤ音 b).スクリーン映像 映像:スライド映像をライン接 続して録画 音声:マイク(登壇者)音声 JAWS DAYS 2024の録画構成
#okanan ① ②
a).後方カメラ 映像: 音声:カメラ付近のガヤ音 JAWS DAYS 2024の録画構成 #okanan b).スクリーン映像 映像: 音声:マイク(登壇者)音声
YouTube公開したい映像はこちら。 。 。どうする??? JAWS DAYS 2024の録画構成 #okanan
JAWS DAYS 2024の録画構成 #okanan 映像: 1). 背景画像を用意 2). 左下はa)後方カメラ 3).
中央はb)スクリーン映像 音声: b)スクリーン映像の音声 ※マイク(登壇者)音声
とりあえず。 。 。 #okanan TODO: DaVinci Resolveの いい感じの画像をいれる。 どうやって編集する??? →動画編集ソフト(DaVinci
Resolve)で切って合成する? 他の動画編集得意そうな実行委員にお願いしようとしたら 「44本かー、とりあえず編集完了は、夏頃っすねー」 😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱😱
①a)後方カメラの映像を切り出し、音声は削除 ②b).スクリーン映像を切り出し ③背景と上記①②を合成、上記①と②はサイズを調整 ④ついでにイントロ動画をつける みんな大好きffmepg #okanan ffmpeg -ss [開始時刻] -t
[抽出時間] -i [入力ファイル] -vcodec copy -an [出力ファイル] ffmpeg -ss [開始時刻] -t [抽出時間] -i [入力ファイル] -vcodec copy -acodec copy [出力ファイル] ffmpeg -i [背景画像] -i [上記①動画ファイル] -i [上記②動画ファイル] -filter_complex " [1]scale=-1:270[ov1];[2]scale=1300:726[ov2];[0][ov1]overlay=45:632[bg1];[bg1] [ov2]overlay=574:176" -acodec copy -r 30 [出力ファイル] ffmpeg -f concat -i ./join_intro.txt -vcodec copy -acodec copy [出力ファイル]
-ss:開始位置:15分26秒から切り出しを開始 -t:長さ:1168秒(= 19分28秒)分を切り出す -i:入力ファイル:動画 C0001_A.MP4 -c copy:映像は再エンコードせずにコピー(高速・劣化なし) -an:音声を無効化(音声なしの動画にする) 出力ファイル名:./work/sp.mp4 映像を切り出し、音声は削除
ffmpeg -ss 00:15:26 -t 1168 -i ./C0001_A.MP4 -vcodec copy -an ./work/sp.mp4 #okanan
-ss:開始時刻:1分58秒 から -t:継続時間:1168秒(= 19分28秒)を切り出す -i:入力ファイル:HyperDeck_A.mp4 -vcodec copy:映像は再エンコードせずコピー(高速/無劣化) -acodec copy:音声も再エンコードせずコピー(高速/無劣化) 出力ファイル:./work/sc.mp4
に保存 スクリーン映像を切り出し ffmpeg -ss 00:01:58 -t 1168 -i ./HyperDeck_A.mp4 -vcodec copy -acodec copy ./work/sc.mp4 #okanan
背景と合成、サイズを調整 ffmpeg -i ./background-image.png -i ./work/sp.mp4 -i ./work/sc.mp4 -filter_complex "[1]scale=-1:270[ov1];
[2]scale=1300:726[ov2];[0][ov1]overlay=45:632[bg1];[bg1][ov2]overlay=574:176" -acodec copy -r 30 ./work/main.mp4 #okanan -i ./background-image.png:入力0:背景画像 -i ./work/sp.mp4:入力1:登壇者映像(後方カメラ) -i ./work/sc.mp4:入力2:スライド映像 -filter_complex:後述 -acodec copy :音声も再エンコードせずコピー -r 30:フレームレートを30fpsに設定 出力ファイル:./work/main.mp4に保存
背景と合成、サイズを調整 -filter_complex " [1]scale=-1:270[ov1]; [2]scale=1300:726[ov2]; [0][ov1]overlay=45:632[bg1]; [bg1][ov2]overlay=574:176" #okanan 入力1(sp.mp4)を 高さ270px
にスケーリング、幅はアスペクト比維持→[ov1] 入力2(sc.mp4)を 幅1300、高さ726 に強制スケーリング→[ov2] 入力0(背景画像)に、[ov1]を座標(x=45, y=632)に重ねる→[bg1] [bg1] の上に、[ov2]を 座標(x=574, y=176) に重ねる
-f concat:入力形式を「concat(連結) 」モードに設定 -i ./join.txt:入力ファイルリスト -vcodec copy:映像は再エンコードせずコピー -acodec copy:音声も再エンコードせずコピー 結合後は./output/A01.mp4に保存
イントロ動画をつける ffmpeg -f concat -i ./join.txt -vcodec copy -acodec copy ./output/A01.mp4 #okanan
デモします スプレッドシートの解説する デモ。 。 。 #okanan
JAWS DAYS 2024では、ちょっと大変だったので、 、 、 また、今年はできればリアルタイム配信したいとのことで 現地でOBSを使って合成をしたものを、 録画データとして提供いただくことにしました。 ※結局、配信はしなかったけど。 。
。 →できるだけ楽をしたい →録画の時点からの根回し重要 JAWS DAYS 2025では。 。 。 #okanan
Googleスプレッドシートのセル参照の基本 相対参照(=A1) ※コピーすると参照先変わる 絶対参照(=$A$1) ※コピーしても参照先固定 複合参照(=A$1) ※行や列だけ固定 補足 #okanan
文字列操作関数 TEXT(value, format_text) =TEXT(A1, "yyyy-mm-dd") 数値や日付を指定した形式の文字列に変換 CHAR(number) 指定したUnicode番号に対応する文字を返す、CHAR(10) は改行 MID(text,
start, length) 指定位置から文字列を切り出し LOWER(text) / UPPER(text) / PROPER(text) 小文字/大文字/単語の頭だけ大文字に変換 補足 #okanan
論理関数・条件分岐 IF(condition, true_value, false_value) 条件分岐 補足 #okanan 検索・参照関数 VLOOKUP(search_key, range,
index, [is_sorted]) 縦方向分岐
例えば。 。 。 。 メールやチャットメッセージのテンプレート生成 件名: ="【最重要】"& A2 & "の作業完了"
本文: ="本日、" & A2 & "の作業が完了しました。" & CHAR(10) & "ご確認くだ さい。" URLやリンクの一括生成(動的なパラメータ付きURLを生成) ="https://example.com/view?id=" & A2 データ整形・変換(SQL生成とか) ="INSERT INTO users (id, name) VALUES (" & A2 & ", '" & B2 & "');" 翻訳・ローカライズ(英語・日本語のペアを生成) =GOOGLETRANSLATE(A2, "ja", "en") 補足 #okanan
まとめ Excel(スプレッドシート)は立派なスクリプトエンジン? 繰り返し作業・大量処理を爆速化 ちょっとした工夫で、数時間の手作業をゼロに! 今後やりたいこと YouTubeAPIを使ったCLIでのアップロード AI文字起こしなどを活用し開始・終了時刻を自動判定 #okanan