キャンペーンとのことで参加してみようと
https://qiita.com/official-campaigns/engineer-festa/2022
初めての Github Actions です。
「何ができるか」から始めます。
よろしくお願いします。
Github Actions でできること
検索して出てくるのは大別して下記2つかと
- 外部サービスの API をコールして何かさせる
- Github 内で何か処理をする
1. 外部 API 系
これはもう Github Actions がどうのというより、外部サービスがどうのの話と。
それと組み合わせて Github が便利になれば、それが求める結果ではありますが。
2. 内部処理系
Github Actions がどうのの話、
今回は Github Actions の学習のため、こちらで何かやってみようと思います。
どのようなフレームで考えればいいかですが、
ファイルの種類別に Action を考えるのが良いかと思いました。
ファイルの種類 | 考えられるAction | バージョン管理 |
---|---|---|
ソースコード | テスト、ビルド、デプロイなど | 有効 |
markdown | H1見出しをページ区切りとして pptx をビルド、 SlideShare にデプロイ |
有効 |
複数の画像 | スライドショー動画作成 | 不要 |
動画 | サムネイル画像抽出、コーデック変更 | 不要 |
雑多 | zip、tar 作成 | 不要 |
後ほど反省することになりますが、
今回はこの中から複数の画像からスライドショー動画を作成させてみました。
画像からスライドショーを作らす
設定
学習用と割り切った狭い設定ですが、下記条件で動作する YAML を作成
・画像ファイル:[数字].jpg
・BGMファイル:bgm.mp3
・画像は5秒ごと、よってBGMはファイル数×5秒のものを用意する
・出力ファイル:out.mp4
name: create-slideshow
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
- name: install
run: sudo apt-get install ffmpeg
- name: create
run: ffmpeg -y -r 0.2 -i %d.jpg -i bgm.mp3 -vcodec libx264 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -r 30 out.mp4
- name: push
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "generated"
git push
結果
動画、できるにはできました。
ミュート解除で音も出るかと思います。
https://github.com/co-labo-hub/slideshow
(あれじゃん、と思ったあなた、子育てご苦労様です)
反省
やってる途中に気づいたのですが、
バージョン管理不要のものを Github にやらせるのは余計な手間がかかるだけだなと。
下記に再掲しますが、検討する表にバージョン管理列が必要だったなと。
よって、markdown から pptx は多少、意味があるのかもと。
(そもそもニーズがなさそうですが)
ファイルの種類 | 考えられるAction | バージョン管理 |
---|---|---|
ソースコード | テスト、ビルド、デプロイなど | 有効 |
markdown | H1見出しをページ区切りとして pptx をビルド、 SlideShare にデプロイ |
有効 |
複数の画像 | スライドショー動画作成 | 不要 |
動画 | サムネイル画像抽出、コーデック変更 | 不要 |
雑多 | zip、tar 作成 | 不要 |
Github、もっと何かできそうだな、と感じさせられますが
具体的に何をやらせると便利なのか、意外と難しいなと思いました。
折を見てまた検討してみたいなと思います。
参考
参考にしたサイトです。ありがとうございます。
スライドショー作成方法
https://zenn.dev/tatsuyasusukida/articles/ffmpeg-image-audio
エラー"width not divisible by 2"の対処法
https://qiita.com/genchi-jin/items/90078b6ec751fdacbc9e
画像を拝借
https://www.pakutaso.com/category.html
BGMを拝借
https://dova-s.jp/bgm/play15804.html
スライドショーの構成
https://mitene.us/