子どもにテレビを見せたくない時間帯はcastnowでテレビをデジタルサイネージにする

はじめに

以前、下記の通りテレビに過集中する小2の長男のテレビ視聴を邪魔する記事を書きました。しかし、リモコンを連打し抵抗してくるようになったので、せっかくだから役に立つ情報でも流そうか。と思いました。

http://のり散歩.net/?p=724

castするコンテンツの収集

chromecastにcastする形式は動画形式でなくてはなりません。しかし、youtubeなどの動画を流してしまうと、それこそ長男が過集中してしまうので本末転倒なので、静止画を動画に変換する必要があります。

まずは、静止画の情報を収集します。
どんなものを集めるか。案です。URLは後述のスクリプトに記載します。

<案>
・NHKのEASY NEWS ※子供や外国人向けのフリガナ付きニュース
・天気予報
・神奈川の地域ニュース・情報
・レシピ集
・日本、世界の絶景集
・あばれる君のtwitter(長男が好きなので)
・ポケモン情報のtwitter
・ニュースサイトをフリガナ付きに変換したもの
・その他、情報が変化しない固定画像(九九の表とか)

castするコンテンツの加工方法の検討

各サイトを丸ごと取ってきてしまうと、とても長かったり、外部リンク画像が空欄になってしまうなど、いろいろと不都合が出てきます。

<検討>
 ●wkhtmltoimage
  使いやすいのですが、twitterなどは外部リンク画像が
  空欄になってしまう問題が解決できずにメインでの利用は断念しました。
 
 ●cutycupt
  ディレイなども使えて、前述の問題も解決できるかと思いましたが、
  やっぱりできずに断念。

 ●chromium-browser –headless
  コマンドでchromiumを起動し、スクリーンキャプチャを取ると
  外部リンク画像も取得できるので、これに決まりました。

実際に加工する

では、chromium-browser –headlessを使って画像を収集していきます。
検討した wkhtmltoimage もせっかく覚えたので使えるものは残しました。

#作業フォルダを作り移動する
mkdir /home/username/png
cd /home/username/png

#wkhtmltoimageでは、仮想ディスプレイで表示して保存する書式
xvfb-run --auto-servernum /usr/bin/wkhtmltoimage --crop-h 830 --crop-w 1500 --crop-x 0 --crop-y 420 'http://{URL}' /home/username/png/filename.png
#chromium-browser は全体をキャプチャしてから、切り取りする書式
chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://{URL} /usr/bin/convert -crop 600x600+330+470 screenshot.png filename.png

ffmpegで動画に変換する

ダウンロードした静止画を30秒の動画にします。

/usr/bin/ffmpeg -loop 1 -i fulename.png -c:v h264 -c:a mp2 -t 00:30 -vf "scale=1920:1080,pad=1920:1080:0:0:black" -y -pix_fmt yuv420p -r 29.98 '/home/username/png/cast.mp4'

castするためのシェル作成

上記の書式を踏まえて、以下のようなシェルを作りました。

#シェル作成
cd /home/username/mp4 vi /home/username/mp4/chromecast.sh




<chromecast.sh シェルの中身>

#! /bin/bash
####### mp4ディレクトリ移動 cd /home/username/mp4
####### 動画をキャスト(1回目は空振り。2回目からシェル起動時に同じ時間に起動するように) (/usr/local/bin/castnow /home/username/mp4/cast.mp4 --address 192.168.10.5) & (sleep 30;/usr/local/bin/castnow /home/username/mp4/cast.mp4 --address 192.168.xx.xx) &
####### pngディレクトリ移動 cd /home/username/png
####### webサイト画像収集 #お天気.com xvfb-run --auto-servernum /usr/bin/wkhtmltoimage --crop-h 300 --crop-w 650 --crop-x 30 --crop-y 360 'http://www1.otenki.com/index.php?mmmsid=bbtenki&actype=page&page_id=0001_day_tenki2&chiten_code=14153000&chiten_name=%91%8A%96%CD%8C%B4%8Es%93%EC%8B%E6&fuken_code=30&fuken_name=%90%5F%93%DE%90%EC%8C%A7&first_code=3001,3002&subtitle=30' /home/username/png/otenki01.png) &
#カナコロ xvfb-run --auto-servernum /usr/bin/wkhtmltoimage --crop-h 830 --crop-w 1500 --crop-x 0 --crop-y 420 'http://www.kanaloco.jp/kanagawa/sagamihara_area/sagamihara/' /home/username/png/kanakoro.png) &
#yahooメディアニュース chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/YahooNewsTopics/media
/usr/bin/convert -crop 600x600+330+470 screenshot.png yahoonews.png
#NHKニュース chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/nhk_news/media /usr/bin/convert -crop 600x600+330+470 screenshot.png nhknews.png
#週間天気 chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 'https://twitter.com/search?f=tweets&vertical=default&q=%40wni_jp%20%20%E3%80%90%E9%80%B1%E9%96%93%E5%A4%A9%E6%B0%97%E3%80%91&src=typd' /usr/bin/convert -crop 600x600+330+470 screenshot.png wekklytenki.png
#相模原PR chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/Sagamihara_PR /usr/bin/convert -crop 600x600+330+470 screenshot.png Sagamihara_PR.png
#楽天レシピ chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/RakutenRecipe /usr/bin/convert -crop 600x600+330+470 screenshot.png RakutenRecipe.png
#あばれる君 chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/abarerukun/media /usr/bin/convert -crop 600x600+330+470 screenshot.png abarerukun.png
#ポケモン chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/poke_times/media /usr/bin/convert -crop 600x600+330+470 screenshot.png poke_times.png
#世界の絶景 chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/sekainozekkei4/media /usr/bin/convert -crop 600x600+330+470 screenshot.png sekainozekkei4.png
#日本の絶景 chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://twitter.com/zekkei_japan/media /usr/bin/convert -crop 600x600+330+470 screenshot.png zekkei_japan.png
#nhk easy news
chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 https://www3.nhk.or.jp/news/easy/ /usr/bin/convert -crop 700x1200+100+150 screenshot.png nhk_easy.png
#産経ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://www.sankei.com/
/usr/bin/convert -crop 700x600+120+290 screenshot.png sankei.png
#産経神奈川 ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://www.sankei.com/region/newslist/kanagawa-n1.html /usr/bin/convert -crop 700x600+120+400 screenshot.png sankeiKanagawa.png
#産経社会 ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://www.sankei.com/affairs/newslist/affairs-n1.html /usr/bin/convert -crop 700x600+120+350 screenshot.png sankeiSyakai.png
#ライブドア 総合 ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://news.livedoor.com/topics/category/main/ /usr/bin/convert -crop 700x600+200+150 screenshot.png lbsogo.png
#ライブドア 社会 ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://news.livedoor.com/topics/category/dom/ /usr/bin/convert -crop 700x600+200+150 screenshot.png lbsyakai.png
#ライブドア グルメ ふりがな chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://news.livedoor.com/topics/category/gourmet/ /usr/bin/convert -crop 700x600+200+150 screenshot.png lbgeinou.png
#ライブドア ランキング chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://news.livedoor.com/ranking/ /usr/bin/convert -crop 700x600+200+150 screenshot.png lbranking.png
#ライブドア IT総合 chromium-browser --headless --screenshot --disable-gpu --window-size=1280,1000 http://trans.hiragana.jp/ruby/http://news.livedoor.com/article/category/210/ /usr/bin/convert -crop 700x600+200+150 screenshot.png lbitsogo.png
####### 固定画像があればコピーする cp -f /home/username/固定画像/* /home/username/png/
####### pngをランダム抽出し、mp4変換 find . -type f -name '.png' | shuf -n 1 | xargs -i% mv % ./cast.png /usr/bin/ffmpeg -loop 1 -i cast.png -c:v h264 -c:a mp2 -t 00:30 -vf "scale=1920:1080,pad=1920:1080:0:0:black" -y -pix_fmt yuv420p -r 29.98 '/home/username/mp4/cast_tmp.mp4'
#### 動画作成中にcastしないように、tmpを作成し、その後コピーする cp -f '/home/username/mp4/cast_tmp.mp4' '/home/username/mp4/cast.mp4'




ニュース系のサイトも、ふりがなゲートウェイサービスを使い、
子どもが読めるようにしました。

このサイトを経由すると、サイトの文章にフリガナを付けることができます。これで、小学生でもニュースサイトを読むことができます。
ただし、httpsのサイトは弾かれるので、産経ニュースやライブドアニュースがおすすめです。

cronへ登録する

毎日、決まった時間に毎分きどうするため、cronへ登録します。
前回の記事同様、x時30分の境目などから停止したい場合は、シェルの名称を入れ替えています。

crontab -e
#<cron> 例

#月〜金6-7時台,16-19時台は強制キャストし、テレビを禁止にする。 6-7,16-19 * * 1-5 sh /home/username/mp4/chromecast.sh
#月〜金6時から6時30分は、シェル名を入れ替えて空振りさせ、6時30分からキャスト開始。その間はテレビは観られる。 0 6 * * 1-5 mv /home/username/mp4/chromecast.sh /home/username/mp4/chromecast.sh_ 30 6 * * 1-5 mv /home/username/mp4/chromecast.sh_ /home/username/mp4/chromecast.sh
#月〜金7時43分に、シェル名を入れ替えて空振りさせ、8時に元に戻す。 43 7 * * 1-5 mv /home/username/mp4/chromecast.sh /home/username/mp4/chromecast.sh_ 0 8 * * 1-5 mv /home/username/mp4/chromecast.sh_ /home/username/mp4/chromecast.sh
#土日は、7-9台,17-18時台は強制キャストし、テレビを禁止にする。 7-9,17-18 * * 0,6 sh /home/username/mp4/chromecast.sh

効果

前回は、真っ黒な画面をcastして邪魔するだけでしたが、今回はいろいろな情報がテレビに映るようになったので、チャンネルを替えなくなりました。(結局、妻がリモコンを奪ったのでね)

というよりは、静止画がチョイチョイ切り替わっていれば、過集中になることもないし、リモコンを奪われても納得感はあるようでした。あとは、GoogleHomeからラジオや音楽を流して、飽きの来ない環境づくりをしました。


これで何とか、テレビ漬けから解放されるといいのですが。


コメント

%d人のブロガーが「いいね」をつけました。