個人的なまとめ。

何かてきとーに書きます。

コピペできないPDFの作り方

shinji611.hatenablog.com

pdftkを使って気持ち程度のコピペ対策を講じてたが,この度どうしてもコピペしたい軍団と争うことになったので,完全にコピペできないPDFの作り方を紹介する.

原理は簡単で,一度ラスタ画像にしてから再度PDF化する.そうすれば「フォント?なにそれ」なPDFができあがる.

pdftoppm -png (inputfile).pdf image
convert image-*.png (outputfile).pdf
rm image*.png

これで620KiBのPDFが2.8MiBになったが,「フォント?なにそれ」なPDFにすることができた.

PDFファイルからpdftkを使って印刷のみを許可するPDFの作成方法

今回は自分に対する備忘録

資料配布するのはいいけど,コピペされるのは嫌だという場合に申し訳程度に対策をすることができる.

pdftk <入力ファイル名>.pdf output <出力ファイル名>.pdf owner_pw <なにかの文字列> allow printing

それだけ

Linuxで動画を録画・編集し音声のみを抽出するまで【メモ】

COVID-19のおかげで教室に集まらずに講義を展開する必要に迫られた.

しかも学生は(当然)そのようなことを想定していない.つまり,家の通信環境は保証されない.

本学ではZoomをつかって講義を行う方針だそうだが,通信量による従量課金の学生は料金が気になって講義どころではないだろうし,帯域制限がかかっている学生はZoomを快適に使えるわけがない.

さてどうしたものか,ということで(しょうがなく)PDFと音声を配布して,Zoomによる講義は参加を必須ではないようにした.
通信環境が潤沢な学生は動画でも良いようにしたかったので,動画で収録をして音声を抽出することにした.
(こうしておかないと動画の人とPDF+音声で学んでいる人で差異が出るとか言われかねない気がする.)

音声だけでよければaudacityなんかの優秀なソフトウェアに向かって話しかければいいと思う.

ここではLinuxだけでできる動画の作成方法から,音声のみ抽出するまでの方法をメモっておく.

動画はOBSというソフトウェアを利用して撮影

obsproject.com

OBSのインストールは

yay -Syu obs-studio

OBSの起動は

obs

フォーマットはmkvがおすすめ


講義の一発撮りで噛まないなんて普通に無理なので,撮影した複数の動画をopenshotでつなぎ合わせる.

github.com

openshotのインストールは

yay -Syu openshot-pt

openshotの起動は

openshot-pt

これでH.265でレンダリングすればきれいに出来上がる.
70分の動画をレンダリングするには,私の環境(Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 2つ)では4時間くらいかかった
相当古い(たしか2007年くらいの)CPUなので他の環境ならもっと早いと思う.

さらに凝った動画をつくりたければkdenliveもいいかも

kdenlive.org

kdenliveのインストールは

yay -Syu kdenlive

kdenliveの起動は

kdenlive

ちなみに私はPDFを写してるだけなのでopenshotで十分


出来上がった動画からffmpegを使って音声を抽出する.聞ける程度の音質を保ちつつ,ファイルサイズを小さくする.


まずは動画から音声を抽出

ffmpeg -i 'input_video.mp4' -vn -acodec copy 'only_sound.m4a'

このときに動画と音声のコーデックを合わせる必要がある.
例えばAACであればmp4やm4a,mp3音声であれば拡張子はmp3となる.
ffmpegが親切に怒ってくれるので,うまく行かなかったらffmpeg先生の言うことを聞けば良い.

次に情報量を少なくするために,音声を意図的に劣化させる.

いくつか試してみた結果,私の耳には以下に落ち着いた
モノラル音声,サンプリング周波数48kHz,ビットレート24kbps

ffmpeg -i 'only_sound.m4a' -ac 1 -ab 24k -ar 48k 'output_sound.m4a'

acでチャネル数の指定,abでビットレートの指定,arでサンプリング周波数の指定ができるっぽい

まさかこんな形でYoutuberみたいな,ちびっこたちのあこがれの職業っぽいことをするようになるとは思わなかった.

Linux版のinkscapeでExtensionsが使えない場合の対処法

inkscape(ver.0.92)で拡張機能を使いたいのに,以下のようなエラーが表示される場合の対処法

 Inkscape has received additional data from the script executed.  The script did not return an error, but this may indicate the results will not be as expected.
 The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore this extension.Please download and install the latest version from http://cheeseshop.python.org/pypi/lxml/, or install it through your package manager by a command like: sudo apt-get install python-lxml
 
 Technical details:
 No module named lxml

目次

  • 目次
  • 内容

内容

続きを読む

Boostnoteが便利過ぎる話

Boostnoteというものをご存知だろうか?
Boostnoteが便利すぎて,もはやブログを書く気が起きない問題が発生するほど困る.

目次

内容

続きを読む

大きなテキストファイルをsortコマンドでソートする方法

かのデカルトは言った「困難は分割せよ」

この記事では,sortコマンドで発生したメモリ不足という困難を,splitコマンドで分割することで解決する.

ちなみにbashを想定している.

目次

  • 目次
  • 内容
    • sortコマンド
    • splitコマンド
    • やり方

内容

続きを読む

【Unix/Linux】odコマンドでバイナリを読む【備忘録】

od(Octal Dump)コマンドでバイナリを読むため備忘録

目次

  • 目次
  • 内容
    • odコマンド
    • つかってみよう
    • もうすこし使ってみよう
    • C言語ソースコードをodコマンドで見てみよう
  • まとめ

内容

続きを読む