utamt engineer blog

アプリケーション開発について学んだことの備忘録です。

2020-05-01から1ヶ月間の記事一覧

ejsにおけるエスケープ処理

で囲むとエスケープしない。 // エスケープする <%= <p>テキスト</p> %> // <p>テキスト</p> // エスケープしない <%- <p>テキスト</p> %> // テキスト

Vagrant(Ubuntu)に立てたMongoDBにMacからアクセスする

Vagrantfileの設定変更 ローカルIPアドレス:192.168.33.10 ポートフォワード:27017 # VagrantのローカルIPを設定 config.vm.network "private_network", ip: "192.168.33.10" # ポートフォワード config.vm.network "forwarded_port", host: 27017, guest:…

MongoDBのバックアップ/リストア

Node.jsからデータを投入 db.collection.initializeOrderedBulkOp()を使う。 const MongoClient = require("mongodb").MongoClient; const url = "mongodb://user:password@127.0.0.1:27017/sample"; // db名: "sample" const connectOption = { useNewUrlPa…

MongoDBのUbuntuへのインストール

インストール 公開鍵のインポート wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - MongoDBのリストファイル作成 echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" |…

Node.js - pathでファイルパスの文字列を操作する

モジュールの取得 const path = require('path') 使用例 const filePath = '/aaa/bbb/ccc/ddd/index.html'; path.dirname(filePath); // /aaa/bbb/ccc/ddd path.basename(filePath); // index.html path.extname(filePath); // .html path.basename(filePath…

Node.jsでファイル監視 - フォルダ内にファイルが追加/編集されたときに何かする

chokidarというライブラリを利用する。 $ npm install chokidar --saveNode.js コード 'use strict'; const chokidar = require("chokidar"); const do = require('/[何かするdo.jsの格納先]/do').do; //chokidarの初期化 const watcher = chokidar.watch('.…

Node.jsでffmpegのシェルを定期実行する(node-cronを利用)

概要 過去記事で、ffmpegを実行するシェルスクリプトを作成した。 utamt.hatenablog.comしかしシェルスクリプトの独特な記法は扱いづらく、今後の拡張性を考えると別の方法を考えたい。ということで、今回は馴染みのあるnode.jsで同じ処理を作る。幸いにも、…

RaspberryPi4でH.264のハードウェアエンコードを使ってみる

エンコードの種類 ソフトウェアエンコード(-c:f libx264) CPUのみで処理 --> CPU負荷が高い。ラズパイ4で350%とかになる。 圧縮率は高いが、変換速度は遅い(1.0x以下) -crf, -preset で 画質や圧縮率、変換速度を調整する。 ハードウェアエンコード(-b:…

Linux コマンド

# CPUの温度 vcgencmd measure_temp # プロセスの監視 top

ffmpegのエンコードの設定は何が最適か

libx265ではエンコード速度に難あり(crf:28 --> speed=0.0392x) 圧縮するとしたらlibx265だが、実用上で最適な変換方法を分析する結論、crf 18-23程度, preset veryfast が良いかも。 環境 RaspberryPi4 サンプル動画:mt2s形式(5分) コマンド $ ffmpeg …

m2tsをmp4にエンコードするシェルスクリプトをcronで実行する

以前、ffmpegでm2tsからmp4(H.265)にエンコードするコマンドを作成した。 utamt.hatenablog.com 今回はこれをシェルスクリプト化し、cronで定期実行させる。 シェルスクリプトの作成 chinatsuで録画したm2tsファイルの保存フォルダに、下記の mp4encode.sh…

DLNAサーバ構築してPS4で動画を再生する

DLNAの構築 raspberryPi の動画ファイルをPS4経由でテレビ再生したい。 「miniDLNA」というソフトで構築できそう。 miniDLNAインストール # インストール $ sudo apt-get install minidlna # 動作確認 $ chkconfig --list minidlna minidlna 0:off 1:off 2:o…

ffmpegでm2tsをmp4に変換する

元動画:input.m2ts -> 変換後:output.mp4 圧縮効率の高いH265がおすすめ。 # H264(デフォルト)に変換する $ ffmpeg -i input.m2ts output.mp4 # H265に変換する $ ffmpeg -fflags +discardcorrupt -i input.m2ts -c:a copy -bsf:a aac_adtstoasc -c:v li…

Raspbianでのシェルスクリプト

# 作成 $ vi testscript.sh#!/bin/bash echo hello-world # 実行権限の付与 $ chmod 755 testscript.sh # 実行 $ ./testscript.sh hello-world

Linuxで外付けHDDをマウントする

外付けHDDの保存領域(場所)はOSを起動する度に変更されてしまう。 ファイルサーバとして利用するためには指定した場所にマウントしておいた方が良さそう。 現在の割り当て場所を調べる $ sudo fdisk -l ...中略... Device Boot Start End Sectors Size Id …

録画サーバ構築(2)

事前作業 utamt.hatenablog.com チューナーサーバ(Mirakurun)のインストール チューナーサーバ Mirakurun をインストールしていく。 これにより、録画コマンドの並列処理や、複数チューナーの管理、優先度処理が可能になる。今回使うMirakurunでは、apiを…

録画サーバ構築(1)

準備するもの チューナー PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0 https://www.amazon.co.jp/gp/product/B0141NFWSG/ ¥4,840 ICカードリーダー SCM ICカードリーダー/ライター SCR3310/v2.0 https://www.amazon.co.jp/dp/B0085H4YZC …

RaspberryPiにwebminをインストール

Webminとは OSの設定をブラウザ経由でGUI操作できるツール。 apt-getでインストールできるようにするためにちょっとした操作が必要。 Webminのインストール リポジトリを追加するため、/etc/apt/sources.listの末尾に追記する。 # vimで開く sudo vim /etc/a…

RaspberryPi 初期設定

準備 RaspberryPi4 スターターキット(¥12,000) ディスプレイ キーボード マウス OSインストール OSイメージの取得 https://www.raspberrypi.org/downloads/ Mac で「NOOBS」をダウンロードする。 ファイルを解凍し、SDカード(32GB)に保存する。 ファイル…