レンタルサーバーにVimとctagsをインストール

レンタルサーバーは自分でコンパイルする必要がある。

./configureをするとmakefileが作られる。ここでオプションを指定することができる。

例えば、–prefix=???とすると、そこにインストールされる。

makeでコンパイルし、make installでインストールする感じ。

Vim

ctags

AndroidStudio インスト~設定 Android(Java)メモ① 

Javaをインストール(必要な場合)

ダウンロードするのは、JavaSE。
JavaSEとは、Java Platform Standard Edition(バージョン5.0までは  J2SEと呼ばれていた)
SEにサーバ向けライブラリをプラスしたのがEEでエンタープライズという感じ。

JDKを保存。JREはランタイムでJDKに内包されている。

Android Studio設定

・設定>ビルド、実行、デプロイ>Gradle>オフライン作業

・gradle.properties

1536から2048に変更。

# org.gradle.parallel=true
コメントアウトを削除し有効化。

・ショートカット変更

タブの移動をVisualStudioと合わせる。

日本語化

http://mergedoc.osdn.jp/
から
Pleiadesのプラグインをダウンロードして、
jp.sourceforge.mergedoc.pleiades

C:\Users\s.okamura\.AndroidStudio2.3
に配置。

Help > Edit Custom VM Options
で新規作成したファイルに
-Xverify:none
-javaagent:C:\Users\s.okamura\.AndroidStudio2.3\jp.sourceforge.mergedoc.pleiades\pleiades.jar
と記入。

Pleiadesにインストーラが付属し基本はインストールするだけ。

実機デバッグ

Tools > Android > SDK Managerで実機のAndroidと同じバージョンのSDKをインストール。
同じ画面の下の方にある、Launch Standalone SDK Managerをクリックして、
別タブにあるGoogle USB Driverにチェックをしてインストール。

実機の端末情報の表示から、ビルド番号を連打して開発者向けオプションを表示させ、
USBデバッグをON。

USBでPCと実機を接続。今回はXperiaZ2なので、
http://developer.sonymobile.com/downloads/drivers/xperia-z2-tablet-driver/
からドライバを入手しインストールする。

新しいプロジェクトを作成するとき、Phone and Tablet で実機と同じバージョンを選ぶ。

ADB(Android Debug Bridge)を利用する場合

パスは以下で、環境変数にパスを通しておく、
C:\Users\s.okamura\AppData\Local\Android\sdk\platform-tools
sysdm.cplで起動し、ユーザー環境変数のPathに追加。

adb devices
adb kill-server
adb start-server

サンプルコード(インテント)

サンプルコード(ダイアログ表示)

サンプルコード(レイアウト生成+トースト表示)

サンプルコード(レイアウト生成+リスト表示)

レイアウトXML(tools)

開発時にのみ使用される情報
xmlns:tools=”http://schemas.android.com/tools”名前空間

tools:context=”.MainActivity”
レイアウトとアクティビティの関連付けによって、レイアウトエディタにテーマが反映される。

レイアウト種類

・FrameLayout > CoordinatorLayout

・LinearLayout > FlexboxLayout
一直線にウィジェットを並べるレイアウト

・RelativeLayout > ConstraintLayout
相対的な位置指定をするレイアウト

・TableLayout
表形式でレイアウト

・GridLayout

・Absolute layout(非推奨)

レイアウトサイズ

・wrap_content
中身に合わせてサイズを調整。

・fill_parent > match_parent
親のサイズと同じ(最大サイズ)。

単位

DP・SP・PX

ConstraintLayoutのwidth / height

・wrap_content
従来同様

・match_parent > Match Constraints
制約のルールを満たす範囲内で指定できる最大限の領域。
実際しているする値はないので、
layout_width=”0dp”
として指定する。

・Fixed
固定値でサイズを指定。

起動ファイル指定

AndroidManifest.xml
より
android:name=”.Test1Activity”
のように指定する。

パッケージ変更方法

・AndroidManifest.xmlを編集する。

・build.gradleを編集する・物理構造を変更する。
MyApplication > app > src > main > java > com > example > mail > myapplication

・ファイルの先頭宣言部を書き換え。

Context

thisとgetApplicationContextで取得できる。

グローバル情報へアクセスするためのインタフェースであり、呼び出してContextが持つテーマを利用したりする。

Activityライフサイクル

・起動する場合。
onCreate
onStart
onResume
アクティビティの表示。

・別のアクティビティを呼び出す場合。
onPause 
別の画面が表示されている状態。
onStop
もとのアクティビティは停止。

・onPauseの時にもとのアクティビティに戻る場合。
onResume
もとのアクティビティ表示。

・別のアクティビティが表示後、
もとのアクティビティに戻る場合。
onRestart
onStart
onResume
もとのアクティビティ表示。

・画面の破棄
onDestroy

アクティビティは停止中に自動で削除される場合もある。

BroadcastとReceiver

・BroadcastReceiver
BroadcastされたIntentに応答する仕組み。Intentを受け取った時にメソッドを実行する。

BroadcastがStickyIntentの場合、BradcastReceiverを登録する必要がなく、
NullをregisterReceiverへ渡して呼ぶだけで現在のバッテリー状態のintentが帰ってくる。

IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
Intent batteryStatus = context.registerReceiver(null, ifilter);

・StickyIntent

StickyBroadcast発信できるIntentをStickyIntentという。
BatteryManagerなど

・Intent

機能と機能を橋渡しする仕組みで、主にActivityを起動するのに利用。

明示的IntentはActivityを指定し、暗黙的IntentはActivityを指定しない。
暗黙の場合、推測できる情報としてIntentFilterを入れておく。

暗黙的Intentの受け取り手となりうるクラスは、Activity・Service・BroadcastReceiverがある。

・Broadcast
通常のBroadcastとStickyBroadcastがある。

通常のBroadcastは発信したときにBroadcastReceiverがないとIntentが破棄される。

StickyBroadcastは最後のBroadcastがメモリに残っている。
(Intentの配信が終了した後に登録されたBroadcastReceiverにも配信されるIntent)

システムでは非同期にBroadcastIntentを発生させている。

サンプルコード(StickyBroadcastでバッテリー情報取得)

Fragment

Activityに近いライフサイクルを持ったビューのこと。
ActivityはFragmentActivityを継承しダイアログはDialogFragmentを継承する。

サンプルコード(フラグメントダイアログ表示)

TweetDeckに登録しているアカウント

Chromeで立ち上げて置くと自動更新するのが気に入って情報はほとんどTweetDeckで収集。
内容によって行を分けるため、フォローではなくアカウントを検索の対象としている。
情報収集も、昔はRSSがメインだったが、今Twitterメイン。

from:@Qiita OR 
from:@atmark_it OR 
from:@codezine OR
from:@qiitapoi

from:@internet_watch OR
from:@cloud__watch OR
from:@madonomori

from:@securenews_web OR
from:@ashitaplanningk OR
from:@zdnet_japan OR
from:@itm_enterprise

from:@bbcnewsjapan OR
from:@afpbbcom OR
from:@cnn_co_jp

ちょっと修正、雑念をなくすため一般ニュースは削除

from:@Qiita
OR from:@atmark_it
OR from:@codezine
OR from:@qiitapoi

from:@internet_watch
OR from:@cloud__watch
OR from:@madonomori

from:@securenews_web
OR from:@ashitaplanningk

from:@zdnet_japan
OR from:@itm_enterprise

追記

情報収集はtwitterからfeedlyに戻した。見出をチェックして、気になる記事は本文を読む流れ。
twitterだと同じ内容が繰り返し流れるのが合わなかった。

運用上常にチェックするかは今後判断、一応以下のアカウントのみ登録。

from:@bbcnewsjapan
from:@afpbbcom
from:@cnn_co_jp
from:@BloombergJapan

TeraTerm 起動マクロ

バッチファイルを作って
ttpmacro.exe ttpmacro.ttl
と記入する。

ttpmacro.ttl
に以下のように記入する。

作成したバッチをクリックするとダイアログが表示されるので、該当の数字を入力すると自動で接続される。

VBA Seleniumの操作

SeleniumWrapper Type Libraryの参照設定を追加する。

Linux コマンド

 less

-N
ナンバリング

-F
画面に収まれば自動終了

-R
カラー表示

-X
終了時画面クリアしない

-S
折り返し無し

-s
空白まとめる

-p xxx
文字反転

-O xxx.txt
パイプのみ、閲覧後ファイル保存

less起動後

q
終了

Shift+f (Ctrl+cで通常モード)
自動更新

g, G
先頭、末尾へ移動

j, k
一行の上下

f, b / w, z
一ページの上下

& xxx
xxxのみ表示
&で絞りんこんでShift+fで更新も可能。

/
検索(nで移動)

-S
折り返し無し。(移動は←, →)

テキスト関連

tr -f \r
Win改行を除く

nkf -wd ファイル名
改行をLinux文字コードをUTF-8

nkf -wd –overwrite ファイル名
そのまま上書き

nkf –guess ファイル名
文字コード判定

hexdump -c xxx
改行コード調べる

sed -e “s/,/\n/g”
カンマを改行へ

 apt

apt-get update
キャッシュの更新

apt-get upgrade
ソフトバージョンアップ

apt-get dist-upgrade
ディストリビューションのアップ

apt-get remove xxx
ソフトの削除

apt-get purge xxx
(apt-get –purge remove xxx)
設定ファイル残らないソフトの削除。

apt-get –purge autoremove
使っていないパッケージ削除(設定ファイルも)

apt-get autoclean
使っていないアーカイブ削除
(キャッシュされているけどインストールしていない.deb)

do-release-upgrade
OSのアップデート

dpkg -l
パッケージの一覧

dpkg -L パッケージ
インストールしたファイル一覧

起動関係

shutdown -h now
終了

shutdown -r now
再起動

プロセス関係

ps aux | grep httpd
プロセスのユーザを確認する。

ps -aux | grep apache
これでプロセス名を確認して
kill xxx
でプロセス終了。

pgrep -l apache
でプロセス番号を探すこともできる。

pkill プロセス名
で複数のプロセスを終了することもできる。

find

ドットはカレントディレクトリから全てのサブディレクトリ
find . -name “*.php”

開始ディレクトリを指定することもできる
find /var

lsと同じように表示
find . -name “*.php” -ls

一括変更
find . -type f | xargs chmod 604
find . -type d | xargs chmod 705

SCP

scp ./example.tar user@210.123.45.67:/home/user/
example.tarを210.123.45.67に転送。

scp -r ./test username@example.net:/home/username
testディレクトリをexample.netに転送。

秘密鍵を使う場合、
scp -i 秘密鍵 コピーしたいファイルパス 受取先パス

その他

/etc/init.d/networking restart
IPアドレスが消えた場合。

cd –
戻る

ctrl + u
入力中を消す

xxx &
ジョブをバックグラウンドへ

jobs
ジョブ一覧

kill %1
ジョブを消す

source .bashrc
bashの設定変更後

サイズを調べる

df -h
デバイスのサイズ

du -h /var/
特定フォルダ以下のサイズ(階層指定の場合 du -h –max-depth=1 / )

screen

起動
screen

一覧
screen -ls

デタッチ
Ctrl+a, d

アタッチ
screen -r id

終了
Ctrl+a, \

シェル作成
Ctrl+a, c

シェル一覧
Ctrl+a, w
Ctrl+a, “(ダブルクオーテーション)

シェル移動
Ctrl+a, 1~

シェルを閉じる(screen自体は生きてる)
Ctrl+a, k

ウィンドウ分割
Ctrl+a, |(バーティカルバー)
Ctrl+a, S

ウィンドウ移動
Ctrl+a, tab

ウィンドウ分割終了
Ctrl+a, Q(その他全ての領域)
Ctrl+a, X(現在の領域)

Windows 不具合関連

だいたいWin7かWin10で調子が悪くなったときにやること。不具合対策と動作を軽くする内容が混ざっていて、あまり意味がないのも書いてあるので注意。

・リモートなどでセーフモード再起動する場合
shutdown /r /t 0
r:再起動、s:シャットダウン

・UEFI設定/BIOS起動

スタートメニュー>設定>更新とセキュリティ>回復>今すぐ再起動>トラブルシューティング>詳細オプション>UEFIファームウェアの設定>再起動

・エラーがでていないか全て目を通す。
eventvwr

・管理イベントにトランザクション関連のエラーが出ている場合。

$TxfLogはトランザクションリソースマネージャーで管理されたトランザクションログ。

$TxfLogのリセット
fsutil resource setautoreset true c:\

・デフラグ、エラーチェック。
ドライブ右クリック>ツール>エラーチェック
ドライブ右クリック>ツール>最適化
ドライブ右クリック>全般>ディスクのクリーンアップ

Win標準のデフラグツール+Win10ならSSDもOK。
不要ならデフラグのスケジュールを止める。

・エラーチェック

cmdから
(Win7まで)chkdsk /f
のみ

(Win10)chkdsk /scan
を実行しオフラインを要求されたら
chkdsk /spotfix
それでもだめなら
chkdsk /f
を実行する。

・contig
contig -s c:\*.dll
contig -s c:\*.exe

・ファイルシステム
sfc /scannow (不整合)
(Win10のみ)dism /online /cleanup-image /restorehealth (破損)

sfcのログ
findstr /c:”[SR]” %windir%\Logs\CBS\CBS.log > “%userprofile%\Desktop\1.txt”

・休止状態を使わないなら
powercfg.exe /hibernate off

powercfg.exe /aで確認できる。電源落ちたらoff > ofする

・とりあえず標準のトラブルシューティングで確認するのもあり

コントロールパネル>トラブルシューティング>すべてのカテゴリ
詳細をクリックすると自動修復のチェックを外せる。

ハードウェアとデバイス、ネットワークアダプター等意外と問題が見つかることも多い。

・更新プログラムの確認

(win7)wuapp>更新履歴の表示
(win10)設定>更新とセキュリティ>更新の履歴を表示する

・スタートアップ止める
msconfig
shell:startup
shell:common startup
またはccleaner等
(Win10)設定>プライバシ>バックグランドアプリ

・サービスを停止。
msconfigや、services.mscから手動でも停止可能。

使わないならWidowsSearch等。無闇に止めると動かない機能もあるので注意。

cmd>
sc config “SysMain” start= disabled
sc config “WSearch” start= disabled
sc config “AxInstSV” start= disabled
sc config “CertPropSvc” start= disabled
sc config “MapsBroker” start= disabled
sc config “lfsvc” start= disabled
sc config “NcbService” start= disabled
sc config “SensorDataService” start= disabled
sc config “SensrSvc” start= disabled
sc config “SensorService” start= disabled
sc config “ShellHWDetection” start= disabled
sc config “ScDeviceEnum” start= disabled
sc config “SCPolicySvc” start= disabled
sc config “WalletService” start= disabled
sc config “wisvc” start= disabled
sc config “icssvc” start= disabled
sc config “WbioSrvc” start= disabled
sc config “XblAuthManager” start= disabled
sc config “XblGameSave” start= disabled

・ツールで一時ファイル消す
ccleaner等

・taskschd.msc

適当に様子みつつ停止する。

WinSAT(システム評価ツール)
ConfigNotification(Windowsバックアップ構成)
Microsoft Compatibility Appraiser(情報収集)
RacTask(信頼性モニタ)
以下カスタマー エクスペリエンス系
ProgramDataUpdater
AitAgent
Proxy
Consolidator
KernelCeipTask
UsbCeip

・IE
設定をリセットする。
履歴を削除する。
終了時に履歴を消す。

・sysdm.cpl > 詳細設定 > パフォーマンスオプション
視覚効果はパフォーマンスを優先し最低限のみ残す
詳細設定>仮想メモリをシステム管理サイズへ。メモリが十分な場合、ページングファイルなし

・optionalfeatures

不要な機能を止める。

・(Win7)control>Windows Defender
自動スキャンとリアルタイムを止める。

・control>インデックスオプション
再構築。一時停止。

・(Win7)control>アクションセンター
・(Win10)control>セキュリティとメンテナンス

不要なら通知やメンテナンスを止める。
感覚的にはデフラグで快適になることも多い。

・control>トラブルシューティング>設定の変更
一つ上と同じ設定を開く。

***

リモート、共有

・リモートデスクトップのショートカット

mstsc -v:xxxショートカットや、mstscからrdpファイルに保存していた場合の接続情報がおかしくなった場合、
control>資格情報マネージャ
からも修正できるが、
mstsc>ダイアログ>編集を実行しても修正できる。

・資格情報を保存していない場合のキャッシュ削除

一覧
net use

削除
net use * /d

・共有フォルダのIDとパスワードを確認しない

control>ネットワークと共有センター>共有の詳細設定の変更>すべてのネットワーク
パスワード保護共有を無効にする

フォルダ右クリック>プロパティ>セキュリティ
Everyoneをフルコントロールで追加

フォルダ右クリック>プロパティ>共有
Everyoneをフルコントロールで追加

ゲストユーザーの許可
net user guest /active:yes

資格情報の登録
cmdkey /add 192.168.4.160 /user:guest

・リモートデスクトップのパスワード空白許可

secpol.msc>ローカルポリシー>セキュリティオプション
アカウント:ローカルアカウントの空のパスワード…
を開き、無効にする。

・ネットワークプロファイル変更方法

Win10設定>ネットワークとインターネット>状態>接続プロパティの変更
必要なら、プライベートに。

・特定のユーザーで共有する場合

フォルダ右クリック>プロパティ>セキュリティ>編集
からユーザーを追加し、そのユーザーで共有を設定する。フォルダにアクセスするときにはそのユーザーでの認証が必要になる。

忘れやすい部分として、一度資格情報に登録されれば、そのユーザーの認証が不要になること、また、共有フォルダとアクセスする側のユーザーが同じ場合も認証がいらないこと。

・Everyoneで共有する場合

通常作成したフォルダにはEveryoneがいないので、
フォルダ右クリック>プロパティ>セキュリティ>編集
からEveryoneを追加し、共有設定をする。

・共有が切れる場合

ncpa.cpl>右クリックプロパティ>構成>電源の管理
電力の節約のため … のチェック外す。

・ネットワーク探索が有効にできない/ネットワークに表示されない

services.msc
から、
Function Discovery Resource Publication
Function Discovery Provider Host
Network Connections
UPnP Device Host
Peer Name Resolution Protocol
Peer Networking Grouping
Peer Networking Identity Manager
SSDP Discovery
DNS Client
あたりを様子を見ながら有効化

control>ネットワークと共有センター>共有の詳細設定>プライベート>ネットワーク探索>ネットワーク探索
を有効にする。必要ならその他の項目も変更。

NetBIOSで認識する古いNAS等は
optionalfeatures
から、SMB1.0が有効かどうか確認。ちなみに、昔はNetBIOSのみだったが、現在はWSD、SSDP、UPnPなど複数存在する。

firewall.cpl>詳細設定>Windows Defender ファイアーウォールを介したアプリまたは機能を許可

Netlogon サービスをチェック、ファイルの共有などチェック。

ncpa.cpl>プロパティ
に表示される、Link-Layer Topology Discovery xxxxもLLTDで過去にネットワークマップを作るため使っていたプロトコル。また、LLDPも同じように探索に使われるプロトコル。両方とも無効で問題なし。

nbtstat -A <IPアドレス>
にて表示されないPC対象に実行するとすぐに表示される場合もある。

このとき..__MSBROWSE__.と表示されるPCはマスターブラウザといってネットワークに表示される情報を管理しているPCであり、net viewで一覧を取得するときにも利用されている。マスターブラウザはサービスのComputer Browserで有効化できる。

***

・タスクトレイを再構築
HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\CurrentVersion\TrayNotify
IconStreams、PastIconsStreamの2つのキーを削除してexplorer.exe を再起動。

・WindowsUpdate、SoftwareDistribution関連

%SystemRoot%\SoftwareDistribution
フォルダをセキュリティソフトの監視対象から外す

アップデートで上手くいかない場合は、wuauserv等を止めてSoftwareDistributionをクリアする。

・アイコンキャッシュ
del /a C:\Users\s.okamura\AppData\Local\IconCache.db
一度消して再起動する。

・フォントキャッシュ
C:\Windows\System32\FNTCACHE.DAT
削除する

・powercfg.cpl
プロセッサの状態を上げる。

・Excel
バックグラウンドのエラーチェック、オートコレクトを止める。
不要アドイン解除

シート自体が遅いとき、
見えないオブジェクト削除
編集>ジャンプ>セル選択>オブジェクト

未使用の行を削除。
スクロールバーを見て判断
Ctrl+Endで判断

・control>デバイスとプリンター
不要デバイス削除

・ドライバー更新
上記やってもダメな場合、ディスプレイとネットワーク関連を先ず最新にする。

・Flashが問題のとき
これも意外と多い。もう必要性も少ないのでFlashに関連するものは全て捨てる。

・レンダリングが問題のとき
数台FujitsuのPCで異常に重くなったことがあって、ドライバー類を最新にしてもダメで、ソフト側のレンダリングを止めることで改善した。

Acrobat Reader
>編集>環境設定>3Dとマルチメディア>レンダラーオプション>優先的に利用するレンダラー>ソフトウェア
に変更する。
>従来のビデオカードでハードウェアレンダリングを有効にする
チェックを外す。

PDF-XChange Viewer等に変更してしまうのも手。

Internet Explorer
>ツール>インターネットオプション>詳細設定>GPUレンダリングではなくソフトウェアレンダリングを使用する。

Chromeにもある。

Excel
>ファイル>オプション>詳細設定>ハードウェアグラフィックアクセラレータを無効にする
チェックする。

・NET Core SDK アンインストール
https://github.com/dotnet/cli-lab/releases
からインストールし、
dotnet-core-uninstall remove –all –sdk
を実行。

FFmpeg メモ

オプションについて

-c(-codec)
は-vcodecと-acodecをまとめてという意味で、
それぞれ指定する場合、
-vcode -acode
または、
-c:v -c:a
と指定する。

ストリームについて

ffmpeg -i xxx
でファイルを読み込むとストリームが表示される。

Stream #0:0
0番目(読み込まれた順)ファイルのストリーム0番という意味。

0:v
は0番目ファイルの映像全て、
0:a
は0番目ファイルの音声全てと書くこともできる。

サンプル

・分割されたVOBファイルを結合する
copy /b VTS_01_1.VOB + VTS_01_2.VOB out.vob

・VOBファイルをMP4に変換
ffmpeg -i out.vob -b:v 4000k  -maxrate 8000k -c:v libx264 -c:a libmp3lame -b:a 256k -ar 44100 out.mp4

※CBR,VBRは下記3つの値の組み合わせで作る。
-b:v xxx -minrate xxx -maxrate xxx

・コーミングノイズ除去
ffmpeg -i i.mp4 -deinterlace o.mp4

・DVDに書き込む用の動画を作成
ffmpeg -i i.mp4 -target ntsc-dvd o.mpg

・スケール変更(アスペクト比維持)
ffmpeg -i i.mp4 -vf scale=1280:-1 o.mp4
(16:9のDVDは1280、4:3のDVDは720)

・部分的に切り出す
ffmpeg -ss スタート ポジション -i i.mp4 -t 切り出す長さ o.mp4

開始

終了

ffmpeg -ss 0 -i i.mp4 -t 0 o.mp4

・ファイルサイズを落とす
ffmpeg -i i.mp4 -vcodec libx264 -b:v 1000k -acodec libmp3lame -ab 192k o.mp4

・mp3に変換
ffmpeg -i i.mp4 -acodec libmp3lame -ab 256k o.mp3

・mp4の連結(ワンライナー)
(for %f in (*.mp4) do echo file %f >> i.txt) && ffmpeg -f concat -i i.txt -c copy out.mp4 && del i.txt

・結合
ffmpeg -i i.mp4 -i i.mp3 -c copy -map 0:v -map 1:a o.mp4
ストリーム指定が不要の場合、
ffmpeg -i i.mp4 -i i.mp3 -c copy o.mp4
でも可能。

・静止画とmp3の結合
ffmpeg -f image2 -loop 1 -r 24 -i i.jpg -i i.mp3 -vcodec libx264 -shortest o.mp4

・指定秒数でサムネイル
ffmpeg -ss 10 -i i.mp4 -vframes 1 -f image2 o.jpg

・m3u8を保存
ffmpeg -protocol_whitelist “file,http,https,tcp,tls” -i i.m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc o.mp4

・指定領域を切り抜き
ffmpeg -i i.mp4 -vf crop=W:H:L:T o.mp4

・ノーマライズ
ffmpeg -i i.mp4 -af “volumedetect” -f null null
で最大dB(max_volume)を確認し、
ffmpeg -i i.mp4 -af “volume=6dB” -c:v copy -c:a aac o.mp4
マイナス分プラスする。

・ファイル結合時の音ズレ修正

音ズレをチェックする場合VLCが便利。(ツール>トラックの同期化)
ここでは-0.8s(音を映像に対して先行させる)で合うことを確認。
ffmpeg -i i.mp4 -itsoffset -0.8 -i i.mp3 -c copy o.mp4

・一つファイル内で音ズレ修正
ffmpeg -i i.flv -itsoffset -0.5 -i i.flv -c copy -map 0:v -map 1:a o.mp4

C# FFmpegにコマンド投げる①

カット

コンバート

C# Listをソート