いつものしらべてもでてこない

調べた事を書きます

aviutlでh264のmuxに失敗した際に手動でx264とm4aをmuxする方法。

aviutlでmuxに失敗しましたと出た。
フォルダを見ると264ファイル(Video)とm4aファイル(Audio)があった。
これらをmuxする方法。

muxer.exeを使ってmuxする

muxはmp4コンテナに動画や音声を詰め込む作業です。
aviutlはmux出来ません、よってx264guiや拡張NVENC等は外部のmuxerでmuxしています。
aviutl上からコマンドラインで実行しているだけですので同様にコマンドラインで実行します。

yambと言うGUI操作でmuxが出来る簡単なフリーソフトもあります。
こちらは20GBを超える場合に"io error"を出して読み込めないのでここでは割愛します各自検索してみてください。
http://yamb.unite-video.com/download.html

command.exeを起動する

Windowsキーを押して検索欄にcommandと入力するとcommand.exeが候補に出るのでEnterで起動します。
フォルダ名>
と表示されると思います。
コマンドを入力する際は
>
を先頭に付けて説明します。

ここから先はファイルがどこにあるかで変わってくるのでファイルの場所を以下の様に仮定します。
aviutl
c:\aviutl\aviutl.exe

hoge.264,hoge.m4a
c:\My Video

ファイルの場所が分からない場合はエクスプローラーで場所を調べて下さい。
コマンドラインの操作はわからないかもしれませんが少しだけ説明します。

muxer.exe

さて、muxerはどこにあるかと言うとaviutlをインストールした場所で変わります。
ここでは"c:\aviutl"と仮定します。

コマンドを入力します。
>c:\aviutl\exe_files\muxer.exe

と入力してENTERを押してもだらだらと長いヘルプが出てこない場合はaviutlがどこにインストールされているか探してください。
分かった場合は次の「muxする」の項目へ進んでください。
muxerの名前はx264guiの画面を開いて右下の外部muxerのファイル名を見たり次の操作で調べてください。

コマンドは一行入力したらENTERキーを押して実行してください
>cd c:\aviutl\exe_files
>dir

dirコマンド

dirは現在のフォルダにあるファイルの一覧を表示します。
そこにmuxerがあればその名前を使ってください。

cdコマンド

cdは現在のディレクトリを移動します。
先頭の一文字を入力してからTABキーを押すと、候補がある場合は自動で次々と選択してくれるのでこれを利用しましょう。

c:\aviutlと言うフォルダがある思う場合は、
cd c:\a
と入力したらTABを何回か押す、と行った具合です。
行き過ぎた場合はSHIFT+TABで逆順になります。

muxする

muxer.exeと入力するとヘルプが出てきます。
形式的には次のように使います。
muxer.exe -i input.264?fps=60 -i input.m4a -o ouput.mp4

通常、fpsは明示する必要は無いので?fps=60は無くても構いませんがmux後にずれたりする場合は明示してください。
29.97fpsの場合は?fps=30000/1001と明示しないと駄目な場合もあります。
23.976fpsの場合は?fps=24000/1001となります。

実際には次のコマンドを入力します。
改行されている様に見えるかもしれませんが1行になっています。
>c:\aviutl\exe_files\muxer.exe -i "c:\My Video\hoge.264" -i "c:\My Video\hoge.m4a" -o "c:\My Video\output.mp4"

フォルダ名に半角スペースが混じっているのでダブルクォートで囲っていますが先に説明したカーソルキーによる入力補完を使うと自動で囲ってくれます。
-oは出力ファイル名ですが、場所を明示しないでoutput.mp4とすると現在の作業フォルダに作成されるので探さなくて済むように明示しています。

mux途中で失敗した場合

mux出来ない場合は打ち間違いかディスクスペースが一杯だと思うのでエラー表示を見て確認してください。


以上。

VFR(可変フレームレート)のMP4動画を無劣化カット編集、結合するフリーソフト

ShadowPlay(Share)やスマホ等では容量を抑えて綺麗にする為にVFR(可変フレームレート)の動画形式が良く使われている。
しかしVFRの動画は主に無劣化で編集出来るソフトが少ない為ちょっと編集するとエンコードされて段々と画質が低下してしまう。
そこで対応したソフトで簡易的なスマート編集(スマートレンダリング)を行う。

使用ソフト

UniteMovie v2.11 を使う。
ベガシスのソフトを使えば対応している筈だが普通は持っていないしフリーソフトで行う。

使用方法

カット編集に付いて説明する。
参考サイトは画像付きなので画像を見たい場合はそちらも見て欲しい。
尚、このソフト自体は動画を表示出来ない。
volx.jp


ZIPファイルを適当なフォルダに展開する。
cutmovie.exeが入っているのでダブルクリックして起動する。
起動したら編集したいファイルをドラッグ&ドロップするか参照ボタンから選択する。

「時間指定」となっている部分は左側が開始、右側が終了。
時間、分、秒、マイクロ秒?指定なので秒指定する際は「秒」の2つ隣に入力する。
「切り取り」をクリックすると指定通りに処理されて出力が終わる。
再生可能な様にキーフレームを開始位置にして切り取るので例えば30フレーム毎にしか切り取れない事がある。

出力ファイル名は初期状態で _part と言う接尾がついているが上書き確認は無い為連続で切り取り行うと上書きされる
指定時間は再生時間と少しずれる事がある様なので指定してもずれている場合はそこから1秒でもずらすと良い。

以上

ファイルの日付文字列から更新日時や作成日時を一括で変更する方法。スマホの写真や動画、コマンド、フリーソフト。

スマホでファイルを移動していたら更新日時が書き換えられて並び順がばらばらになってしまった。
調べるとスマホではアプリと対象の前後の状況によって日時が書き換えられる事があるようだ。
色々調べて試した所、大丈夫なはずのアプリでzipから解凍しても更新日時は書き換えられてしまったのでSDカードに日時を復元したファイルを入れる事にした。
但し段階的な操作が必要。

準備

ファイル名(拡張子)につけた日付部分を自動で削って変更するので手順を把握してから行いましょう。

PowerShellスクリプトを作成しました

この記事の処理は手順が2つに分かれていて処理数に制限がありやや面倒なので右クリックして実行するだけのPowerShellスクリプトを作成しました。
新しい記事をご覧下さい。
bannan.hatenadiary.jp

状況

ファイル名に日付の文字列が入っている。
日付の文字列から更新日時を変更したい。
(yyyy-mm-dd_HH-MM-SS)

若しくは
更新日時や作成日時を基準にファイル名に日付をつけたり他の日付を更新したい。

必要なソフト

更新日時が正しいならFlexible Renamerだけで良い。
www.vector.co.jp


更新日時をファイル名に付ける&戻すツール
www.vector.co.jp
注意点としてVBSなので引数の都合で150ファイル程度しか一度に処理できない。

【ソフトウェア名 】ファイルの更新日時をファイル名に付けるツールとそれを戻して更新日時へ反映するツール
http://www.vector.co.jp/soft/dos/util/se499266.html

この2つ。

大まかな手順

Flexrenaで正規表現を使ってファイル名の拡張子の後ろに必要な日時文字列を追加する。yyyymmdd_HHMMSS
RecoverDt.vbsで更新日時へと反映する。

若しくは
Flexrenaで更新日時を他の部分へコピーする。
Flexrenaで正規表現を使ってファイル名に適当な日時をつける。

作業

仮定としてyyyy-mm-dd_HH-MM-SS.pngと言うファイルを作業対象とします。
SDカードは取り外してPCに直接接続します。

ファイル名に日付文字列を付け足す。

Flexrenaでフォルダを選択。
上のメニューにある「リネーム」をクリック。
ターゲットの「ファイル」をクリックしてチェック。
フィルタは「*」で全ファイルを選択。
「サブフォルダ以下」も行いたい場合はチェック。

「高度なリネーム」をクリックしてチェック。
リネーム方法の「正規表現ラジオボタンをクリックして選択。

検索に
(\d{4})-(\d{2})-(\d{2})-(\d{2})-(\d{2})-(\d{2})(\.png)
又は
(\d{4})-?(\d{2})-?(\d{2})_?-?(\d{2})-?(\d{2})-?(\d{2}).*(\.png|\.jpg|\.mp4)

置換に
\0\1\2\3_\4\5\6
(この部分で「サポート」のリストを開くとわかるが更新日時からファイル名に日付をつけることも可能)

何もファイルを選択していない、か必要なファイルだけ選択した状態で、下の「リネーム(R)」をクリック。
何もファイルを選択していないと全ファイルを処理するか聞かれるので問題なければ「はい」をクリック。

こうすると「元の拡張子」+「yyyymmdd_HHMMSS」と言うファイルが出来上がる。「拡張子を表示する」にしていない場合はこのソフトで見ないとわからない。

ファイル名の日付文字列を削って更新日時に反映する。

出来上がったファイルを RecoverDt.vbsドラッグアンドドロップ する。ファイル名が引数になるので1度に150ファイル程度まで。
ここでyyyymmdd_HHMMSSが削られて更新日時に反映される、その為この部分しか日付が無いとファイル名から日付がなくなり判別できなくなるがFlexrenaを使えば正規表現からファイル名に書き出せるので問題ない。

更新日時を作成日時に反映する。

Flexrenaで「属性」をクリック。
タイムスタンプで「揃える」を選択。
元となる日時は「更新日時」をクリックして選択。
適用先は「作成日時」をクリックしてチェック。
下の「設定開始」ボタンをクリックして設定が完了。

終わり

ファイル名は重要。
EXIFの情報も更新できるはず。

以上。

Windows7でMicrosoft IMEを使用していると変換モードが無変換になってキーで戻せない

Windows7Microsoft IMEを使用していると変換モードが無変換になってキーで戻せない

変換していると稀に変換モードが無変換なる事が有り
あ無
となる事があってキー設定を見たがマウスを使用しないと一般に戻せなかった。
通常の無変換はA無で英数固定入力モード。

変換モードを変更するキーを設定する

キー設定を見ると変換モードを変更するキーが無い為自分で設定する必要がある。

Ctrl+変換を変換モードの変更に設定する。

Ctrl+変換入力/変換済み文字なしは使われていない筈なのでそこに設定する。

IMEツールバー(あ無○□?CANA)を右クリック。
設定(E)をクリック。
MicrosoftIMEをクリックすると右にあるプロパティをクリックできるようになるのでクリック。

Microsoft IME のプロパティウィンドウが開く。
編集操作タブをクリック。
編集操作、キー設定の変更(D)ボタンをクリック。

Microsoft IME 詳細プロパティウィドウが開く。
*キー列を見ながら下へスクロールさせるとCtrl+変換が見つかる。
Ctrl+変換のすぐ右隣の列が入力/変換済み文字なしの列で--になっているのでクリックして選択。
変更(M)ボタンをクリックできるようになるのでクリック。

機能選択ウィンドウが開く。
変換モード切替をクリック。
OKボタンをクリック。

Microsoft IME 詳細プロパティウィドウに戻るので適用をクリック。
OKをクリックして閉じる。
以上。

これで変換モードの変更Ctrl+変換で出来るようになる。
あ無になった際にCtrl+変換を何度か押せばあ般に戻す事が出来る。

Windows7のシステムイメージの作成でシステム以外のドライブ(D:\)が出てくるようになった場合。

Windows7のシステムイメージの作成でシステム以外のドライブ(D:\)が出てくるようになった場合。

ある時ファイル整理をしバックアップイメージを作成しようかと思い実行しようとすると大幅な容量の増加を確認した。
バックアップファイルを手動で選択を選んで詳細を見た所システムドライブ以外のドライブ(Dドライブ)が表示されていた。
Dドライブは以前使用していたがシステムドライブを交換してからは使用しておらず理由が不明だった。

解決方法その1:作成されたファイルを消す

一概に言えないのでまず次の検索結果を見て試して欲しい。本項では別の問題が発生していた為詳しい説明はしない。
Windows7 システムイメージの作成 システムドライブ以外のドライブ - Google 検索

検索した所、システムにより何らかのファイルが作成された場合には当然バックアップする必要がある為そこをシステムドライブに含めるようだ。
その為、日付で期間を指定してファイル検索を掛けてそう言ったファイルを消す事で解決する場合がある。

解決方法その2:アクティブパーティションを解除する

今回の解決策はこれになる。
その1に従ってある時から突然システムドライブとして扱われる様になった原因を考えた所、結論に至った。
過程は次の様になっている。

  1. ディスクイメージは暫く手動で作成していなかった為、詳しい期間は不明。
  2. Dドライブのファイルで作成された物や思いつくものは削除したり移動したりしても特に影響は無かった。
  3. 他の理由として考えていた所、最近不具合が発生して再起動をしていた際に前後は不明だが何らかの理由でブートローダーが変更されたような形跡があったのを思い出した。
  4. ブートローダーは見た目上何も変わっていないように思えたがロード時間が30秒のデフォルトに戻っていた。
  5. ブートローダーが破壊や変更されたのでなければ以前使っていたDドライブから起動している可能性があると思いパーティションをみたらアクティブになっていた。

そこでパーティションのアクティブを解除して本来あるべきパーティションのみをアクティブにした所正常に起動し以前と同じブートローダーの状態になった。
ディスクイメージを作成しようとするとCドライブのみがシステムドライブとして認識されてバックアップ対象になった。

以上となる。

アクティブパーティションを非アクティブにする方法。

これはDISKPARTを用いて指定ディスクの指定パーティションinactiveにする。

スタートボタンをクリックして検索窓をクリックする。(そうすると窓の中でカーソルが点滅して入力待ちになる)
DISKPARTと入力してENTERキーを押す。
UACの許可を求められたら「はい」を選択。
DISKPARTが起動する。

この先は各自の環境によって異なるので例だけ示す。
操作についてはDISKPART>の状態で
?
とだけ入力してENTERキーを押す事でヘルプが出てくるので困ったらそこで確認できる。
尚、コマンドに際しては結果や確認は出ない為結果を確認するコマンドを入れて確認する必要がある。

コマンドと説明を交互に記す。
例:
list disk
ディスク一覧が表示される

select disk 1
Cが0でDが1の場合

list disk
選択したディスクの行頭に * が表示される。

list partition
(Dドライブのパーティションが表示される)

select partition 0
パーティション0を選択。

list partition
選択したパーティションの行頭に * が表示される。

detail partition
パーティション 1
種類         : 07
隠し属性     : いいえ
アクティブ   : はい
オフセット (バイト): 1048576

inactive
特に何も出ない。

detail partition
パーティション 1
種類         : 07
隠し属性     : いいえ
アクティブ   : いいえ
オフセット (バイト): 1048576

「アクティブ」の項目が「いいえ」になった事を確認

これで選択したパーティションが非アクティブになった。
DISKPARTは×を押して閉じて良い。


間違えてもCドライブを非アクティブにしないように。
ドライブが複数接続されている状態でWindowsをインストールした場合はどこから起動しているかは調べないとわからない為安易にアクティブを解除しないように。
システム修復ディスクを作成しておくと全てのドライブが非アクティブになっていてもコマンドプロンプトからDISKPARTを起動してアクティブに変更できるので作成しておく事を勧める。

変更が終わったら再起動して正常に起動する事を確認する。


以上。

先読み画像ビューアーLeeyes、ショートカットキー1ボタンでファイルの移動コピー複製。

先読み画像ビューアーLeeyes、ショートカットキー1ボタンでファイルの移動コピー複製。

さて以前Garanの記事を書いたが先読み出来て整理する為のファイラーとして使いやすいビューアーが他に無かった。先読みが不要ならMassigraが使いやすいが不安定なGaranに代わってLeeyesを便利なファイラーとして使える事が分かった。

 

Leeyes

 

1ボタンファイラーとして使うにはVBSファイルを作ってLeeyesに登録する。

まずは一般的な設定から。

BMP以外はSusieプラグイン

Plug-in package ver0.08(JPEG/GIF/TIFF/Pi/PIC/Pic2/XLD4/MAG/PICT/
LHA/Zip)

https://www.digitalpad.co.jp/~takechin/download.html

ifpng0.25

Susie32 PNG Plug-in (Regular版)

 

それぞれ展開してLeeyesのフォルダに入れる。

 

見開きは右綴じだが変更可能

初期設定では右綴じになっている為、見開き2枚表示の際に右から左に表示される。

これは綴じ方向で設定できる。

メニューバーの「イメージ」>「綴じ方向」

見開き数は設定できない。

横で大きなPNG画像を見開きにするとエラーが出る為見開き設定は自動。

 

先読み枚数の設定

メニューバーの「オプション」>「設定」>「先読み」

 

「展開中の画像をメモリにロードする」をクリックしてチェック。

「容量」を256MB(最大値)に設定。

 

この状態で4KのPNG画像を開いた所、前後10枚先読みで500MB程度、前後20枚で1.5GB程度のメモリを使用した。10枚の設定でスクロールして何十枚も行ったり来たりしていても快適だった。

 

VBSを使ったファイルの移動とコピー(ショートカット利用)

振り分けファイラーとしての機能は無いのだがこの方法で数字の1-9を押すだけでファイルの操作を出来るようになる。

メニューバーの「ファイル」>「指定動作で開く」>「アプリケーションから開く」で以下の説明にあるcopy.vbsかmove.vbsを指定。

メニューバーの「オプション」>「キーカスタマイズ」>「登録アプリケーション~」に数字の1~9を割り当てる。

 

例:C:\TEMPにコピーしたい場合、Leeyesのフォルダに「copy.vbs」と言うファイルを作成して以下の文を書いて保存。ドラッグして選択したら右クリックかCtrl+Cでコピーしてください。

 


'----------ここからコピー----------'

 

Dim Fname
Dim Fname2
Dim FSO

Set Fname = WScript.Arguments

If Fname.Count <> 2 Then
WScript.Quit
End If

Set FSO = CreateObject("Scripting.FileSystemObject")

'移動したい場合はmove.vbsを作って上のCopyFile の行を半角シングルクォートでコメントアウトするか削除してMoveFileの先頭の'を削除してください。

 'コピーしたい場合。
FSO.CopyFile Fname(1), Fname(0) & "\"

'移動したい場合。

'FSO.MoveFile Fname(1), Fname(0) & "\"

 

'----------ここまでコピー----------'

 

 

「アプリケーションの登録」で「追加」を選択し、「copy.vbs」を入力して開く。

「アプリケーションの登録」の「パラメーター」に「保存先のフォルダ名\」を入力。

C:\TEMP\

これで「登録アプリケーション1」のキーに「1」に設定すれば1を押すだけで指定フォルダにコピーする事が出来る。

 

凄く便利。

 

 

以上。

 

aviutlでフレームレートの違う動画を変換し編集する方法。

aviutlでフレームレートの違う動画を変換し編集する方法。

ShadowPlayを使って録画するとフレームレートが29.8323等と言う不自然な数になる。

これを指定フレームレートに変更して編集する方法。

 

必要ソフトとプラグイン

  • aviutl
  • 拡張編集

 

編集方法

aviutlを起動する。

設定から拡張編集をチェックして拡張編集ウィンドウを出す。

 

拡張編集

||||||| 0:00:00

Layer1 | (Layer1のタイムライン)

Layer2 | (Layer2のタイムライン)

 

の様に表示されるのでタイムライン上で右クリック。

メニューが出てくるので「新規プロジェクトの作成」をクリック。

設定画面が出てくるのでここで出力したい形式を入力してOKをクリック。

編集したい動画をタイムライン上にドラッグアンドドロップするかタイムライン上で右クリックして「メディアオブジェクトの追加」から「動画ファイル」をクリック後に出てきたウィンドウの左下にある「参照」から編集したい動画を開いて追加する。

 

これでフレームレートの違う動画を目的のフレームレートに変換して編集できる。

開けるファイルは入力プラグインとその順番に依存するので注意が必要。

 

以上。