備忘録一覧

FDK-AACが使えるHandBrakeをビルドしてみる(Windows版)

最近はお手軽に動画変換したいときにHandBrakeを使うことが多い。
特にこだわりはないのでStable版を使用中だが、FDK-AACが使えなくなっていたので自前でビルドしてみた備忘録。

仮想環境の準備

ビルドは仮想環境で行うのでVirtualBoxを使用。

Oracle VM VirtualBox

使用した時点のバージョンは5.1.14。

インストール方法は割愛させていただき、早速新規で仮想マシンを作成。

ゲストOSはUbuntuの64bit版を使うのでそれに合わせて設定。名前に「Ubuntu」と入力すると自動でそれっぽい設定がされるので基本そのまま使う。
続きを読む


FFmpeg3.0のQSV(H264)を拡張してみる

FFmpeg3.0からQSVまわりが少し変更になったようなので別記事に。
(FFmpeg3.1~FFmpeg3.4でも動作を確認しました。)

使いまわし多数ですがw

今回からソースはGitで取得した前提。
ZIPファイル等でダウンロードする場合はディレクトリ名が異なるので置き換えてください。

Windows版のビルド(拡張なし)

以前と同じくmfx_dispatchがあれば良いようです。

必要なツールの準備 (MSYS + MinGW + GCC)

今回もXhmikosR’s氏のを使わせていただきました。
(MSYS_MinGW-w64_GCC_530_x86-x64_Full.7z 2016-01-09版)

msys – XhmikosR’s Builds

展開して「MSYS」内の「msys.bat」を実行。以降CLIでの操作。
(「home」以下にユーザー名のディレクトリが作成されるので、ファイルはWindows側でそこに展開)
続きを読む


FFmpeg2.8のQSV(H264)を拡張してみる

(FFmpeg3.0に対応した記事はこちら

少し前のgit版から正常に動作するようになっていたQSVのH264エンコードがStable版2.8でも動作するようになり、以前の記事のような処理は不要になりました。

Windows版のビルド(拡張なし)

Windowsでのビルド仕方は前回とほぼ同じで、mfx_dispatchさえあれば良いようです。
前回の使用した拙作のパッチも必要ありません。

必要なツールの準備 (MSYS + MinGW + GCC)

今回も XhmikosR’s さんのところのをそのまま使わせていただきました。
(使用したバージョンは MSYS_MinGW-w64_GCC_520_x86-x64_Full.7z 2015-09-10版)

msys – XhmikosR’s Builds

「MSYS」をCドライブのルートに展開して、「msys.bat」を実行。以降CLIでの操作。
(「home」以下にユーザー名のディレクトリが作成されるので、ファイルはWindows側でそこに展開)
続きを読む


QSV対応Windows版FFmpeg2.7をビルドしてみる

(FFmpeg2.8以降に対応した記事はこちら

自前でQSV対応のWindows版FFmpegをビルドして遊んだ時の備忘録。

はじめにことわっておきますが、今回初めてdiffを使ってパッチを作成したような素人のお遊びですので温かい目で見てあげてください。

公式スナップショットを試す

FFmpegのコミット履歴を眺めていたら3月下旬頃に「libmfx-based H.264 encoder」の文字を発見。早速スナップショットをビルドして、「-codecs」を見ると確かに「encoders: h264_qsv 」となっていた。

これでFFmpegもQSVのエンコードに対応かと思ったのだが実際に使用してみると問題が発覚。

エンコード中に次のメッセージが大量発生し、出来上がった動画は再生されるもののシークすると映像が真っ黒になる。

Non-monotonous DTS in output stream 0:0; previous: XX, current: 0; changing to XX. This may result in incorrect timestamps in the output file.

原因などわかる筈もなく、私のような素人はリリース版で対応になるまで待った方が良さげか・・・・
続きを読む


web cron サービスの代替えとして AppFog を使ってみる (Ruby編)

前回より cron っぽくするべく、今度は Ruby でやってみる。

基本的には公式のドキュメントに解説があるのだけど、

Task-scheduling

私のような Ruby 素人にはよくワカランし忘れそうなので備忘録。

実行コード

今回も「5分おきに特定のURLにアクセス」にチャレンジ。

実行スクリプト名 [app.rb]

require 'rubygems'
require 'rufus/scheduler'
require 'net/http'

scheduler = Rufus::Scheduler.new

scheduler.every '5m' do
	Net::HTTP.get('HOGE.com', '/hoge.php')
end

scheduler.join

Ruby の入門サイトあたりを見ればなんとなく理解できる。
続きを読む


スポンサーリンク