サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
tech.ckme.co.jp
目次 >> youtube-dlの使い方 youtube-dlの使い方 ここではYoutubeからビデオファイルをローカルにダウンロードするためのyoutube-dlの使い方について述べる。 最近では、スマホなどでも容易に4k動画を撮ることができるが、そのファイルサイズは極めて大きい。ローカルのハードディスクなどあっという間にいっぱいになってしまう。そこでYoutubeなどにアップロードしてローカルファイルはブルーレイなどに焼いてしまうと、ローカルのハードディスクの容量の節約となり便利である。 Googleはアップロードしたファイルのダウンロードする手段を提供していないが、オープンソースソフトのyoutube-dlを使うとダウンロードが可能である。なお、このソフトを使ってもオリジナルのファイルはダウンロードできない(解像度が同じでも再圧縮され劣化している)ので注意が必要である。 基本的な使
-ssで開始時間の場所を指定する。入力ファイルに関する設定なので、-iオプションの前に指定する。 -tでssで指定した時間からここで指定した時間分切り出す(終了時間の指定ではないので注意)。 単位は共に何もつけない場合は秒。hh:mm:ssでの指定も可能。hh:mm:ss.xxxでコンマ秒単位で指定できる。 ffmpeg -ss 10 -i input.mp4 -t 20 output.mp4 この場合、10秒目から20秒間分(すなわち元の動画の10秒と30秒の間)をエンコードする。 再エンコードをしない場合、画質は劣化せず、処理は早くなるが、キーフレームからしか始められないので、指定した時間から少しずれる場合がある。 ffmpeg -ss 10 -i input.mp4 -t 20 -c:v copy -c:a copy output.mp4 最終更新日 2018-01-26 本文中のF
目次 >> ffmpeg >> AWSのAmazon Linux AMIでのコンパイル方法 AWSのAmazon Linux AMIでのffmpegのコンパイル方法 Amazon Linux AMIでは、ffmpegをyumでインストールできない。 しかし、公式ページの案内、https://trac.ffmpeg.org/wiki/CompilationGuide/Centosに従ってインストールしていけば、容易にインストールできる。 まず、いくつかの必要なものをインストールする。 $sudo yum -y install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel なお、AV1のエンコーダを組み込むには、cmakeをVer3.5以上にア
オーディオコーデックは-codec:aもしくはそのエイリアスである-acodecで指定する。 音声が不要な場合は-anをつける。元々入っていない場合は作成されないので、不要。2パスエンコードの1パス目でつけると音声変換の時間分だけ短縮できる。 逆に音声だけ取り出す場合は、拡張子をmp3などにする。 AACでエンコードする -codec:alibfdk_aac mp3でエンコードする -codec:a libmp3lame opusでエンコードする -codec:a libopus orbisでエンコードする -codec:a libvorbis 再エンコードを行わない -acodec copyを指定すると、単純に抜き出される再エンコードが行われないので無劣化である。 -codec:a copy オーディオコーデックの選び方 すでに圧縮された動画、音声とも再圧縮は極力避けるべきである。特に音
まずは、もっと基本的な使い方。-iで入力ファイルを、すべてのオプションの最後に出力ファイルを設定するだけである。 ffmpeg [グローバルオプション] [入力ファイル関係のオプション類] -i 元動画ファイル [出力ファイル関係オプション類] 出力動画ファイル ffmpegは入力元動画に関しては、ffmpegが解析し、適切なデコーダを、出力先動画に関しては、拡張子を元に適切なエンコーダが選ばれる。 例 ffmpeg -i exapmle.avi exapmle.mp4 ffmpeg -i exapmle.mov exapmle.flv ffmpeg -i exapmle.wmv exapmle.mov ffmpeg -i exapmle.mp4 exapmle.wmv ffmpeg -i exapmle.mp4 exapmle.webm このようにオプションを何もつけない場合、動画、音声
目次 >> ffmpeg >> H.264でエンコード H.264でエンコードする H.264でエンコードする場合、2つのモードがある。品質固定モードと、ビットレート固定モードである。 これらは排他的であり、なにもオプションを指定しないと、品質固定モードでエンコードされる。 H.264を指定するには -c:v libx264 とする。 品質固定モード 品質は-crfで指定する。 とれる範囲は0から51。値が小さいほど、高画質になるが、その分ファイルサイズは増える。 デフォルト値は23。 このモードは1パスである。 crf値の選択 ビットレートは、crf値が6減るごとに、およそ倍になる。 18以下でほぼ見た目上の劣化がなくなる。0でロスレスとなるが、ロスレスエンコードには、-cfr 0よりも-qp 0が推奨されている。なおロスレスエンコードを行うと、ffmpegベースのプレーヤー以外では再生
ffmpegは、無料で使える動画および音声のエンコーダである。ここでは、ffmpegを使って、H.264、webm、wmvなどの各種動画に変換する方法を解説する。 ffmpegは、使い方はきわめて簡単である一方、様々なオプションを駆使すれば、より詳細な設定も可能である。 なお、DVDやBlu-rayのようにフォルダ構造をとるものの場合は、x264のバージョンは最新ではないものの、HandBrakeを使う方が簡単である。→HandBrakeの設定と使い方 目次 ffmpegの基本的な使い方 動画:ビデオコーデックの指定 動画:動画品質の設定 動画:H.265でエンコード 動画:H.264でエンコード 動画:AV1でエンコード 動画:VP9でエンコード 動画:wmvでエンコード 動画:フレームレート及び画面サイズを指定する 動画:複数の静止画から動画を作成する 動画:クロッピングしてエンコード
opendir、readdir、closedirを使う。必要なヘッダは、 #include <sys/types.h> #include <dirent.h> まず、opendirでディレクトリを開く。 DIR* dp=opendir("/home/foo/boo/"); エラーがあった場合は、NULLが返される。 次に、readdirで読み込む。NULLになるまで読み込むと、ディレクトリ内のすべてのファイルを取得することができる。 最後にclosedirで閉じておく。 closedir(dp); DIR* dp=opendir("/home/foo/boo/"); if (dp!=NULL) { struct dirent* dent; do{ dent = readdir(dp); if (dent!=NULL)cout<<dent->d_name<<endl; }while(dent
目次 >> NFS NFSの設定 ここでは、NFSの設定を説明する。 複数のLinuxサーバがLAN内で稼働している場合は、NFS(Network File System)でファイルを共有するのが簡単である。ここではNFSを使ってファイルをネットワーク内で共有する。sambaはWindowsやMac OS Xなどが存在する際の共有には便利であるが、Linux/UNIXのみの環境などでは、NFSで共有するのが簡単である。また、計算機クラスターなど、ネットワーク越しの高速なディスクアクセスが必要な場合にも有効である。 NFSでネットワークドライブを構成する - NFSサーバ側の設定 まずはサーバのインストール $ sudo apt-get install nfs-kernel-server Reading package lists... Done Building dependency tr
ここでは、フリーのエンコーダー、HandBrakeを使ってDVDやBlu-rayディスクから主にiPadやiPhone、Android向けの動画を作成する方法を解説する。FFmpegではなく、HandBrakeを使う一番の利点は、ディスクの構成を自動的に解析してくれる点である。ただし、内蔵されているFFmpegのバージョンは最新ではない場合が多いので、単一動画ファイルを別の動画に変換する場合は、FFmpegの方が簡単であり、高品質になる場合がある。ディスクにはプロテクトはかかっていないものとする。 ここで目指すのは、iPadぐらいの小さな画面とスピーカーで再生したとき、十分に鑑賞に堪えられる動画を作ることである。iPadの記憶容量には限りがあるので、1つあたり500MBから1GB程度を目標とする。 一方、エンコード時間は問わないことにする。すなわちどんなに時間がかかってもコンパクトで高画質
目次 >> TORQUE TORQUEのインストールと設定 TORQUE Resource Managerは計算機クラスターのジョブを管理するジョブスケジューラである。 現在は開発が停止したOpenPBSの後継ソフトであり、アップデートも頻繁に行われている。 開発元の詳細なマニュアルはここにある。 ここではUbuntu 12.04への導入方法を示す。 構成は、ジョブを管理するヘッドノード、および実際の計算を行う計算ノードから構成される。 今回は、node001がヘッドノードとなる。node001は計算ノードも兼用しており、計算ノードは001から005まである。 インストールは、apt-getで行える。 まず、ヘッドノードに、TORQUEサーバをインストールする。 $ sudo apt-get install torque-server Reading package lists... Do
コンパイルする際のコンパイラのバージョンや種類をマクロによって区別することができる。 GCCの場合 __GNUC__が定義されている。 __GNUC__にはメジャーバージョン番号が、__GNUC_MINOR__にはマイナーバージョン番号が、__GNUC_PATCHLEVEL__にはパッチレベルが入っている。__GNUC_PATCHLEVEL__はGCC3より導入された。 例 #ifdef __GNUC__ cout<<"GNU C/C++ "<<__GNUC__<<"."<<__GNUC_MINOR__; #ifdef__GNUC_PATCHLEVEL__ cout<<"."<<__GNUC_PATCHLEVEL__; #endif cout<<endl; #endif Apple製品の場合 __APPLE__ __APPLE_CC__ の2つがある。 __APPLE__はすべてのAppl
目次 >> SSH >> sshd SSHデーモンの設定 SSHサーバの設定ファイルは、通常Linuxでは/etc/ssh/sshd_config、OS X Serverでは/etc/sshd_configある。通常はデフォルトの設定で、sshdを起動すれば使えるはずである。なお、OSをインストールした時点では、sshdは自動起動するようになっていないものも多い。 接続できない! 接続できないのは、大抵、ファイアウォールがブロックしているか、sshd自体が起動していないことが多いので、まずはその確認を。 Fedoraではインストールした時点では自動起動しないのでOS起動時に自動的に起動するようにするには、rootで # chkconfig sshd on と打つ。 ssh関係ファイルのアクセス権 まず、id_rsa、authorized_keysファイルは、600に設定する。/home/f
ここでは、ネットワークやXwindowなどのLinux自体の動作に関する設定を中心に説明する。 情報表示 ここでは、各種の情報を集める際の表示方法について説明する。 コンピュータに関する情報 OSのバージョンのような基本的な情報を取得するには、 $ uname -a Linux example.com 3.2.0-24-generic #37-Ubuntu SMP Wed Apr 25 08:43:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux および $ cat /etc/issue CentOS release 5.2 (Final) でわかる。 ハードウェア情報を表示する方法 その1 hwinfo hwinfoを使うと、ハードウェアの詳細な情報を得ることができる。OpenSUSEでは標準で備わっている。Ubuntuではapt-get instal
目次 >> CUDA >> インストール(Mac OS X編) CUDA - インストール(Mac OS X編) NVIDIAのGPGPU開発環境であるCUDA(Compute unified device architecture)をインストールして、使ってみる。 使用機器はMacbook 2009年春。 CUDA2.3のインストール CUDA2.3をMac OS X 10.6 Snow Leopardにインストールする。 Snow Leopardから、デフォルトのコンパイラが従来のgcc4.0からgcc 4.2に変わったがCUDA2.3はまだgcc4.2にうまく対応し切れていないので、インストール後、いくつかの作業が必要となる(後述)。 CUDA用ドライバのインストール NVIDIAのサイトから、Mac用のドライバをダウンロードしてインストールする。ダウンロードしたファイルcudadr
目次 >> CUDA >> Constant Memory CUDA - Constantメモリの使い方 Shared Memoryは各ブロックあたり16kBしかないので、floatの場合で、4096個しか使用できない。 一方、Constant Memoryは64kBあるので、その4倍の16384個(floatの場合)を使うことができる。 Constant Memoryはカーネル内からは書き換えられないが、CPU側からはいつでも書き換えることができる。 また、アクセス速度もGlobal Memoryより速い。 今回は、以前の2次元拡散方程式を、Constant Memoryを使って解いてみる。 拡散方程式を解く(2次元) まず、diff2d.cuであるが、 #include <stdio.h> #include <cutil.h> #include "diff2d_kernel.cu" /
一枚のグラフィックカードに複数のGPUを載せたGeforce 9800 GX2や、SLIを使って複数のグラフィックカードを搭載したシステムでは、これらを同時に使って処理能力を高めることができる。 今回は、2つのGPUを使って一次元拡散方程式を解いてみる。 複数のGPUを使う場合、pthreadなどを使い、GPUの数だけスレッドを作成する。 GPU間で直接データをやりとりする方法はないので、それぞれ、メインメモリを介してデータのやりとりをする。 1つのGPUを使った並列処理はOpenMPに近いものがあるが、一方複数のGPUを使った処理はMPIのような処理となる。 今回使ったシステムは、 Opteron 2.0 GHz NVIDIA Geforce 9800 GX2 OpenSUSE 10.2 である。 一次元拡散方程式を2つのGPUで解く まず、diff1dmgpu.cuであるが、 #inc
目次 >> CUDA >> インストール(Linux編) CUDA - インストール(Linux編) NVIDIAのGPGPU開発環境であるCUDA(Compute unified device architecture)をインストールして、使ってみる。 OSはubuntu 12.04 x86_64 GeForce GTX 285 2GB VRAM Intel Core i7 860 2.80GHz RAM 8GB CUDA 4.2.9 まず、Xサーバが動いていると ERROR: You appear to be running an X server; please exit X before installing. For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README
もし、C99が使える環境であれば、round()という関数が用意されている。これは、小数点以下を四捨五入した整数値(ただし型はdouble)を返す。 次にC99が使えない環境の場合であるが、まず数値が常に正の値であるならば、小数点以下を四捨五入を行うには、0.5を足して、小数点以下を切り捨てればよい。 具体的には、 a=123.456; a+=0.5; a=int(a); の様に書くと、aは123になる。 小数第何位で四捨五入をしたいという場合は、その位分を最初に掛けて、整数での四捨五入後、同じ数字で割ってやればよい。 具体的には、 a=123.456; a*=100; a+=0.5; a=int(a); a/=100; としてやると、aは123.46になる。 逆に大きい位で四捨五入をする場合は、最初に位分で割って、整数での四捨五入後、同じ数字を掛けてやればよい。 具体的には a=123.
目次 >> CUDA >> インストール(Windows編) CUDA - インストール(Windows編) NVIDIAのGPGPU開発環境であるCUDA(Compute unified device architecture) 6.0 をインストールして、使ってみる。 使用機材は、Windows7 64bit向けが GeForce GTX 680 4GB Core i7-4770K RAM 32GB マザーボードASUS ASUS P8Z77-V DELUXE CUDAのインストール CUDAのインストールは、初期の頃に比べてだいぶ楽になっており、ここから、自らの環境に合ったインストーラをダウンロードしてくる。 まず、Visual C++ 2012をインストールしておく。 CUDA コンパイラ一式のインストール まず、https://developer.nvidia.com/cuda-
例えばopenSUSE 10.0で/var/log/messagesを見ると時々 Mar 26 22:01:32 linux sshd[18645]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:34 linux sshd[18647]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:35 linux sshd[18649]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:37 linux sshd[18651]: Invalid user test12 from 65.205.238.12 Mar 26 22:01:38 linux sshd[18653]: Invalid user test12 from 65.
sftpは遠隔地のサーバーのファイルに安全にアクセスする方法である。 sshfsを使うと、sftpを通して遠隔地のサーバのディレクトリをマウントすることができる。 ここではsshfsを使って遠隔地のサーバーのディレクトリをマウントすること、そしてそのマウントしたディレクトリをsambaを使ってローカルネットワーク内からアクセスできるようにする方法を解説する。 これにより、Windowsなどから、通常の共有フォルダと同じような感覚で、遠隔地のサーバ内のフォルダにアクセスできるようになる。 WindowsからVPNを使って直接アクセスするのと比べると、Linux側の設定は必要である者の、Windows側の設定は特に必要ないという利点がある。一方で、外出した際に、カフェなどからアクセスする場合は、VPNに利がある。 インストール ubuntuの場合 Linux Mintやubuntuの場合は、a
目次 >> OpenDX OpenDX(IBM Visualization Data Explorer)の設定と使い方 IBM Visualization Data ExplorerはUnix向けに開発されたフリーのビジュアライゼーションソフトである。Linux以外に、Windows、Macなどでも利用できる(ただしMac向けは有料)。ここでは、OpenDXの使い方およびWindowsでのインストール方法を解説する。なお、Linuxの場合は、付属のパッケージマネージャなどから簡単に利用できる場合が多い。 Windowsでのインストール ダウンロードはhttp://www.opendx.org/download.html からおこないう。ソースファイルの他、Windows用バイナリ、FC4、FC5向けバイナリ、Suse10向けバイナリなどがある。執筆時点での最新版は4.4.4(OpenDX-
httpd.confの日本語訳 Fedora Core 5のApache2.2のデフォルトの/etc/httpd/conf/httpd.confの日本語訳 # # これは、Apacheのメインの設定ファイルである。これは、サーバの振る舞いを決定する # 各種設定用ディレクティブを含んでいる。 # 詳しい情報は次のサイトを参照のこと <URL:http://httpd.apache.org/docs/2.2/ja/> # それぞれのディレクティブに関しては、次のサイトを参照のこと # <URL:http://httpd.apache.org/docs/2.2/ja/mod/directives.html> # # # # 警告:何をしているのかを理解せずに、ここの解説を読まないこと。 # ここに書いてあることは、要約のみである。 # もしはっきりしない場合は、オンラインドキュメントを参照のこ
目次 >> MPI MPI(Message Passing Interface) このページでは、MPI(http://www-unix.mcs.anl.gov/mpi/)について解説する。 MPIとは MPIとは、複数の計算機で並列に計算させて、演算の高速化を図る手法である。1台のコンピュータでも可能ではあるが、通常は複数台のコンピュータをネットワークでつないだ構成を取る。1台の場合は、OpenMPなど別の方法も検討してみるとよい。 MPIはほかの並列か方法と比べて、大規模な並列化に向いているが、その一方で、実行するには特別な方法でプログラムを起動させてやる必要があるなど、少々敷居が高い。 OpenMPIとMPICHがあるが、どちらもメジャーなので好きな方を使えばよい。 OpenMPIのインストール $ sudo apt-get install openmpi-bin openmpi-d
目次 >> GCC GCC gcc(GNU Compiler Collection)はCやC++、FORTRANなどを含んだ無料のコンパイラ集。 http://gcc.gnu.org/ awsでAmazon Linux AMIに最新のGCCを入れる まず、インスタンスを立ち上げる前に、最近のGCCはファイルサイズも大きいので、ディスクの容量にも気を付けること。20GB程度あるとよい。 ftp://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.xz からダウンロードする。 前提 ビルドするには、下記の3つも入れておく必要がある。 $sudo yum install gmp-devel $sudo yum install mpfr-devel $sudo yum install libmpc-devel あるいはまとめて $sudo yum ins
目次 >> cron cronで自動実行 Linuxやcygwinなどで、定期的に何かコマンドやスクリプトを実行したい場合は、cronを使うのが便利である。Windowsにおけるタスクスケジューラである。 ここでは、cronの設定の仕方について解説する。 定期的に行うもの、たとえばバックアップや時計合わせなどはcronを利用して自動実行するようにする。 /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly の各ディレクトリ内に毎日、毎時間、毎月、毎週行うスクリプトを入れておく。 それぞれ実行される時刻はFedoraやubuntuの場合、/etc/crontab内の 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc
目次 >> samba Sambaを使ってファイルを共有する LAN内でsambaを使って、Windowsパソコンなどとファイルを共有する。 sambaを設定する際は、一時的にファイアウォールおよびSELinuxを切っておくことを勧める。接続できないなどのトラブルが起きた際に、sambaの設定が原因ではなく、これらの設定によりつながらないという場合も多いからである。sambaが正常に動作することがわかった後に、ファイアウォールなどを設定した方が原因が切り分けやすくなる。 また、日本 Samba ユーザ会が公開している「Sambaが動作しないときの診断方法」も問題解決に有効である。 Sambaのインストール Linux Mintにはデフォルトで入っている。 ubuntuの場合 ubuntuの場合、apt-get install sambaでインストールする。 $ sudo apt-get i
ここではGPGPU向け統合環境の一つ、NVIDIAのCUDA(Compute unified device architecture)を使って、大規模並列計算を行ってみる。 NVIDIAによれば、並列度の高い処理ではCPUと比べておよそ10倍以上の速さで処理できるという。 なお、CUDA環境をインストールすると、自動的にOpenCLも使えるようになる。OpenCLに関しては別項を参照。 目次 CUDAのインストール(Linux編) - LinuxにCUDA環境をインストール CUDAのインストール(Windows編) - Windows XPにCUDA環境をインストール CUDAのインストール(Mac OS X編) - Mac OS XにCUDA環境をインストール 初めてのプログラム - とりあえずCUDAでのプログラムに慣れてみます 拡散方程式を解く - より実用的な処理の一例として拡散
次のページ
このページを最初にブックマークしてみませんか?
『すぐやらない課:tech.ckme.co.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く