digital/devices/PC/Windows/アプリ
の編集
https://over.6pb.info/wiki/?&4c88579664
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#contents *Evernote [#rf66ff38] [[NET/Evernote]]に移動。 *ペースター [#w8d29c27] ジャンル的にはクリップボード拡張。選択テキストの加工もできる。大文字小文字などはありがちだが,かなり凝ったことができる。例えば,・正規表現によるテキスト加工(多段も可能=パイプ),・選択テキストを外部Perlスクリプトに渡し加工して貼り付け(UTF-8渡しも可能),・選択テキストを計算式として計算,などが可能。 -文章に繰り返しがあり,リストに直せることが(人間には)明らかな場合に,リスト化(この例ではPukiWiki形式)。但し,デリミタがない場合は困難。このスクリプトは,選択文字の先頭文字をデリミタにしてリスト化する。 #pre{{ 繰り返しテキストをリスト化 | [@ s/(.)(.+?)[ ]+(.+?)(?=\1|$)/-$2\n--$3\n/g] }} --このままだとゴミが残ることもあるので(多段化)。 #pre{{ 繰り返しテキストをリスト化 | [|] [@ s/(.)(.+?)[ ]+(.+?)(?=\1|$)/-$2\n--$3\n/g] [@ s/ +\n/\n/g] [@ s/(-+) +/$1/g] /E }} -英文の整形。 英文を整形 | [@ s/\b(.{50,70}) (?![., ])\b/$1\n/g] -TSVをPukiWikiの表組みに変える(外部スクリプト)。 #pre{{ while (<>) { s/([\d,]+) ([\t\n])/$1$2/g; # エクセルの数値セルをコピーすると余計な空白が付くので除去。 s/\t/|/g; s/[\r\n]+//; print "|$_|\n"; } }} **日本語 [#gbb20d6c] SJIS外の文字も正常に処理できる。PU2で呼出せばUTF-8で渡せる。ただ,Perlスクリプト内でのエンコードには多少注意が必要。 まず,Perlで日本語を扱う基礎知識が必要。これはペースターの問題ではない。UTF-8で渡しても内部表現になっているわけではないので,デコードが必要だし,エンコードも必要。これは普通の日本語処理プログラミングと何ら変わりはない。 |use utf8;&br;binmode STDIN, ":encoding(utf-8)";&br;binmode STDOUT, ":encoding(utf-8)";|これが簡便でよい。| |use encoding "utf8";|一部情報が欠落することがある。| *Anki [#s52aa327] **Quick [#t9b1d2b3] ***カードにフィールドを追加する [#p2aa611b] +「ツール」 +「ノートタイプを管理」 ++まず,フィールド名を追加する ---対象を選び,「フィールド」コマンド ++次に,カード上での表示を設定 ---「カード」コマンド *ffmpeg [#ffmpeg] TMPGEncを使わずにこれを使うのは自動化が目的だから、スクリプトを使う。私はPerl (Active Perl)を使う。 #pre{{ #!/usr/bin/perl use utf8; # NHKニュース7.ts のエンコード専用 my $serviceID = 1024; my $fname = qr/^(.+NHKニュース7)\.ts$/; # .tsのあるディレクトリで実行。 # GUIから直接実行なら、終了後画面が閉じるのでSTDERRを保存する。 use strict; use warnings; use Encode; my $cp932 = find_encoding('cp932'); # http://gihyo.jp/dev/serial/01/modern-perl/0032?page=2 # 画面に出すならこのbinmode STDERR ...はwell works # binmode STDERR, ":encoding(cp932)"; # ('cp932')はNG # ファイルに出す close STDERR; open (STDERR, '>>:encoding(cp932)', 'ffmpeg.log') or die $!; $| = 1; # current directory use Cwd; my $wd = Cwd::getcwd(); opendir my $dh, $wd or die "$wd:$!"; my @files = readdir $dh; closedir $dh; for (@files) { $_ = $cp932->decode($_); # 正規表現リテラルで検討するにはdecode必須。 next unless /$fname/; # ファイル名をencodeしないと対外的な操作できない。 my $infile = $cp932->encode($_); my $outfile = $cp932->encode($1) . '.mp4'; my $mtime = (stat($infile))[9]; # 動画時間を取得し、何倍速でエンコードできたか表示する my $info = qx(ffprobe "$infile" -hide_banner -show_entries format=duration); # STDOUTにこれだけ返り、$infoに入る。 # [FORMAT] # duration=1808.072933 # [/FORMAT] my $duration = 0; if ($info =~ m|duration=([\d\.]+)|g) { $duration = $1; } my $stime = time; qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$infile" -vf "scale=1280:720" -global_quality 25 -c:v h264_qsv -ac 2 -map 0:p:$serviceID:0 -map 0:p:$serviceID:1 "$outfile" ); # タイムスタンプ変更 utime($mtime, $mtime, $outfile) if -e $outfile; my $passed = time - $stime // 0; my $sname = $cp932->decode($0); # $0はPerlの特殊変数でスクリプト名 printf STDERR "$sname: %.1f times\n",$duration/$passed if ($passed > 0); } }} 音声多重を速度を変えてエンコードするには2passにする。 #pre{{ #!/usr/bin/perl use utf8; # BS世界のドキュメンタリーのエンコード専用 # 速度を変えるため2回変換している。そうしないと音声多重放送では音ずれを # 防げないようだ。 my $serviceID = 101; my $fname = qr/^(BS世界のドキュメンタリー.+)\.ts$/; # .tsのあるディレクトリで実行。 # GUIから直接実行なら、終了後画面が閉じるのでSTDERRを保存する。 use strict; use warnings; use Encode; my $cp932 = find_encoding('cp932'); # http://gihyo.jp/dev/serial/01/modern-perl/0032?page=2 # 画面に出すならこのbinmode STDERR ...はwell works #binmode STDERR, ":encoding(cp932)"; # ('cp932')はNG # ファイルに出す close STDERR; open (STDERR, '>>:encoding(cp932)', 'ffmpeg.log') or die $!; $| = 1; # current directory use Cwd; my $wd = Cwd::getcwd(); # glob関数はWindowsでは正しく動かないという指摘あり(未確認) opendir my $dh, $wd or die "$wd:$!"; my @files = readdir $dh; closedir $dh; for (@files) { $_ = $cp932->decode($_); # 正規表現リテラルで検討するにはdecode必須。 next unless (/$fname/); # ファイル名をencodeしないと対外的な操作できない。 my $infile = $cp932->encode($_); my $middle = $cp932->encode($1) . '.mid.mp4'; my $outfile = $cp932->encode($1) . '.mp4'; my $mtime = (stat($infile))[9]; # 動画時間を取得し、何倍速でエンコードできたか表示する my $info = qx(ffprobe "$infile" -hide_banner -show_entries format=duration); # STDOUTにこれだけ返り、$infoに入る。 # [FORMAT] # duration=1808.072933 # [/FORMAT] my $duration = 0; if ($info =~ m|duration=([\d\.]+)|g) { $duration = $1; } my $stime = time; qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$infile" -vf "scale=1280:720" -global_quality 25 -c:v h264_qsv -ac 2 -map 0:p:$serviceID:0 -map 0:p:$serviceID:1 "$middle" ); qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$middle" -vf "setpts=2/3*PTS" -af "atempo=1.5,pan=mono|c0=c0" -global_quality 25 -c:v h264_qsv "$outfile" ); # タイムスタンプ変更 utime($mtime, $mtime, $outfile) if -e $outfile; my $passed = time - $stime // 0; my $sname = $cp932->decode($0); # $0はPerlの特殊変数でスクリプト名 printf STDERR "$sname: %.1f times\n",$duration/$passed if ($passed > 0); } }} *TVRock [#t0ad1f32] -TvRockOnTVTest.iniの[BSFrequency] 2020年4月1日現在 #pre{{ [BSFrequency] 0x4010=11727 0x4011=11727 0x4012=11727 0x4030=11766 0x4031=11766 0x4450=11804 0x4451=11804 0x4470=11843 0x4090=11880 0x4091=11880 0x4092=11880 0x46B1=11919 0x46B2=11919 0x40D0=11958 0x40D1=11958 0x40F1=11996 0x40F2=11996 0x4310=12034 0x4311=12034 0x4632=11766 0x46d2=11958 0x4730=12073 0x4731=12073 0x4732=12073 0x4750=12111 0x4751=12111 0x4752=12111 0x4770=12149 0x4771=12149 }} -Cf. [[総務省の情報通信政策に関するポータルサイト:https://www.soumu.go.jp/main_sosiki/joho_tsusin/joho_tsusin.html]]の「衛星放送の現状」
タイムスタンプを変更しない
#contents *Evernote [#rf66ff38] [[NET/Evernote]]に移動。 *ペースター [#w8d29c27] ジャンル的にはクリップボード拡張。選択テキストの加工もできる。大文字小文字などはありがちだが,かなり凝ったことができる。例えば,・正規表現によるテキスト加工(多段も可能=パイプ),・選択テキストを外部Perlスクリプトに渡し加工して貼り付け(UTF-8渡しも可能),・選択テキストを計算式として計算,などが可能。 -文章に繰り返しがあり,リストに直せることが(人間には)明らかな場合に,リスト化(この例ではPukiWiki形式)。但し,デリミタがない場合は困難。このスクリプトは,選択文字の先頭文字をデリミタにしてリスト化する。 #pre{{ 繰り返しテキストをリスト化 | [@ s/(.)(.+?)[ ]+(.+?)(?=\1|$)/-$2\n--$3\n/g] }} --このままだとゴミが残ることもあるので(多段化)。 #pre{{ 繰り返しテキストをリスト化 | [|] [@ s/(.)(.+?)[ ]+(.+?)(?=\1|$)/-$2\n--$3\n/g] [@ s/ +\n/\n/g] [@ s/(-+) +/$1/g] /E }} -英文の整形。 英文を整形 | [@ s/\b(.{50,70}) (?![., ])\b/$1\n/g] -TSVをPukiWikiの表組みに変える(外部スクリプト)。 #pre{{ while (<>) { s/([\d,]+) ([\t\n])/$1$2/g; # エクセルの数値セルをコピーすると余計な空白が付くので除去。 s/\t/|/g; s/[\r\n]+//; print "|$_|\n"; } }} **日本語 [#gbb20d6c] SJIS外の文字も正常に処理できる。PU2で呼出せばUTF-8で渡せる。ただ,Perlスクリプト内でのエンコードには多少注意が必要。 まず,Perlで日本語を扱う基礎知識が必要。これはペースターの問題ではない。UTF-8で渡しても内部表現になっているわけではないので,デコードが必要だし,エンコードも必要。これは普通の日本語処理プログラミングと何ら変わりはない。 |use utf8;&br;binmode STDIN, ":encoding(utf-8)";&br;binmode STDOUT, ":encoding(utf-8)";|これが簡便でよい。| |use encoding "utf8";|一部情報が欠落することがある。| *Anki [#s52aa327] **Quick [#t9b1d2b3] ***カードにフィールドを追加する [#p2aa611b] +「ツール」 +「ノートタイプを管理」 ++まず,フィールド名を追加する ---対象を選び,「フィールド」コマンド ++次に,カード上での表示を設定 ---「カード」コマンド *ffmpeg [#ffmpeg] TMPGEncを使わずにこれを使うのは自動化が目的だから、スクリプトを使う。私はPerl (Active Perl)を使う。 #pre{{ #!/usr/bin/perl use utf8; # NHKニュース7.ts のエンコード専用 my $serviceID = 1024; my $fname = qr/^(.+NHKニュース7)\.ts$/; # .tsのあるディレクトリで実行。 # GUIから直接実行なら、終了後画面が閉じるのでSTDERRを保存する。 use strict; use warnings; use Encode; my $cp932 = find_encoding('cp932'); # http://gihyo.jp/dev/serial/01/modern-perl/0032?page=2 # 画面に出すならこのbinmode STDERR ...はwell works # binmode STDERR, ":encoding(cp932)"; # ('cp932')はNG # ファイルに出す close STDERR; open (STDERR, '>>:encoding(cp932)', 'ffmpeg.log') or die $!; $| = 1; # current directory use Cwd; my $wd = Cwd::getcwd(); opendir my $dh, $wd or die "$wd:$!"; my @files = readdir $dh; closedir $dh; for (@files) { $_ = $cp932->decode($_); # 正規表現リテラルで検討するにはdecode必須。 next unless /$fname/; # ファイル名をencodeしないと対外的な操作できない。 my $infile = $cp932->encode($_); my $outfile = $cp932->encode($1) . '.mp4'; my $mtime = (stat($infile))[9]; # 動画時間を取得し、何倍速でエンコードできたか表示する my $info = qx(ffprobe "$infile" -hide_banner -show_entries format=duration); # STDOUTにこれだけ返り、$infoに入る。 # [FORMAT] # duration=1808.072933 # [/FORMAT] my $duration = 0; if ($info =~ m|duration=([\d\.]+)|g) { $duration = $1; } my $stime = time; qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$infile" -vf "scale=1280:720" -global_quality 25 -c:v h264_qsv -ac 2 -map 0:p:$serviceID:0 -map 0:p:$serviceID:1 "$outfile" ); # タイムスタンプ変更 utime($mtime, $mtime, $outfile) if -e $outfile; my $passed = time - $stime // 0; my $sname = $cp932->decode($0); # $0はPerlの特殊変数でスクリプト名 printf STDERR "$sname: %.1f times\n",$duration/$passed if ($passed > 0); } }} 音声多重を速度を変えてエンコードするには2passにする。 #pre{{ #!/usr/bin/perl use utf8; # BS世界のドキュメンタリーのエンコード専用 # 速度を変えるため2回変換している。そうしないと音声多重放送では音ずれを # 防げないようだ。 my $serviceID = 101; my $fname = qr/^(BS世界のドキュメンタリー.+)\.ts$/; # .tsのあるディレクトリで実行。 # GUIから直接実行なら、終了後画面が閉じるのでSTDERRを保存する。 use strict; use warnings; use Encode; my $cp932 = find_encoding('cp932'); # http://gihyo.jp/dev/serial/01/modern-perl/0032?page=2 # 画面に出すならこのbinmode STDERR ...はwell works #binmode STDERR, ":encoding(cp932)"; # ('cp932')はNG # ファイルに出す close STDERR; open (STDERR, '>>:encoding(cp932)', 'ffmpeg.log') or die $!; $| = 1; # current directory use Cwd; my $wd = Cwd::getcwd(); # glob関数はWindowsでは正しく動かないという指摘あり(未確認) opendir my $dh, $wd or die "$wd:$!"; my @files = readdir $dh; closedir $dh; for (@files) { $_ = $cp932->decode($_); # 正規表現リテラルで検討するにはdecode必須。 next unless (/$fname/); # ファイル名をencodeしないと対外的な操作できない。 my $infile = $cp932->encode($_); my $middle = $cp932->encode($1) . '.mid.mp4'; my $outfile = $cp932->encode($1) . '.mp4'; my $mtime = (stat($infile))[9]; # 動画時間を取得し、何倍速でエンコードできたか表示する my $info = qx(ffprobe "$infile" -hide_banner -show_entries format=duration); # STDOUTにこれだけ返り、$infoに入る。 # [FORMAT] # duration=1808.072933 # [/FORMAT] my $duration = 0; if ($info =~ m|duration=([\d\.]+)|g) { $duration = $1; } my $stime = time; qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$infile" -vf "scale=1280:720" -global_quality 25 -c:v h264_qsv -ac 2 -map 0:p:$serviceID:0 -map 0:p:$serviceID:1 "$middle" ); qx(ffmpeg -y -hide_banner -nostats -init_hw_device qsv:hw -i "$middle" -vf "setpts=2/3*PTS" -af "atempo=1.5,pan=mono|c0=c0" -global_quality 25 -c:v h264_qsv "$outfile" ); # タイムスタンプ変更 utime($mtime, $mtime, $outfile) if -e $outfile; my $passed = time - $stime // 0; my $sname = $cp932->decode($0); # $0はPerlの特殊変数でスクリプト名 printf STDERR "$sname: %.1f times\n",$duration/$passed if ($passed > 0); } }} *TVRock [#t0ad1f32] -TvRockOnTVTest.iniの[BSFrequency] 2020年4月1日現在 #pre{{ [BSFrequency] 0x4010=11727 0x4011=11727 0x4012=11727 0x4030=11766 0x4031=11766 0x4450=11804 0x4451=11804 0x4470=11843 0x4090=11880 0x4091=11880 0x4092=11880 0x46B1=11919 0x46B2=11919 0x40D0=11958 0x40D1=11958 0x40F1=11996 0x40F2=11996 0x4310=12034 0x4311=12034 0x4632=11766 0x46d2=11958 0x4730=12073 0x4731=12073 0x4732=12073 0x4750=12111 0x4751=12111 0x4752=12111 0x4770=12149 0x4771=12149 }} -Cf. [[総務省の情報通信政策に関するポータルサイト:https://www.soumu.go.jp/main_sosiki/joho_tsusin/joho_tsusin.html]]の「衛星放送の現状」
テキスト整形のルールを表示する
添付ファイル:
ATOK2014スタイル一覧.xlsx
823件
[
詳細
]