Skip to content

v2.5.0

Compare
Choose a tag to compare
@tsukumijima tsukumijima released this 29 Mar 23:45
· 189 commits to master since this release
  • v2.5.0 - 2021/03/30
    • リリース概要
      • 致命的な脆弱性を修正するセキュリティアップデートを含みます、旧バージョンをお使いの方はできるだけ早く更新してください
        • 脆弱性の悪用に繋がるため詳細は避けますが、API 等に細工した特殊なリクエストを送ると OS コマンドを含めた任意のコードが実行可能になってしまいます
        • 攻撃は(ホストとポートが一致している必要がありますが)外部からでも可能なため、速やかに更新することを推奨します
        • この脆弱性を教えていただき、また修正パッチまで提供して頂いた xtne6f 氏に感謝します。足向けて寝れません…
      • 機能追加・不具合修正・iOS/iPadOS 端末での互換性の改善などを多量に含む3ヶ月分の大型アップデートです
        • 大きなものから細かいものまで相当な数の不具合を修正し、ようやく不具合なく安定して使える状態になったと思います
        • 変更点は大きいですが、再インストールの必要はありません(…のはずです)
        • Cookie 名を変更したため、アップデートすると個人設定と Twitter のログイン状態がリセットされます
      • 現実的に現状バージョンの TVRP で実装できる機能は一部を除きほぼ全て追加したつもりです
        • 一番の課題は録画番組リストの挙動が不安定で複数フォルダに対応していない事ですが、これに関しては抜本的な再実装が必要になるため、現行バージョンでは難しいです
        • いつになるかは分かりませんが、TVRemotePlus の機能をベースにモダンな技術で全て書き直したソフトをリリースするつもりです
          • v3 になるのか、別のソフトになるのかは現時点でははっきりしていませんが…
          • 録画番組リスト周りを筆頭に技術的負債により実装が困難な機能が複数あり(根本的に改善するには大幅に書き直す必要がある)、それらを改善するには新しく全て書き直したほうがトータルで見て良いだろうという結論に至りました
          • 保守がしんどいし、スパゲッティなクソコードを維持していてももうあまり学びが得られないので、フロントエンド・バックエンドともにモダンな技術に移行したいのもあります
    • 字幕描画用ライブラリを b24.js から aribb24.js に変更した
      • v2.5.0 の目玉の機能追加です
      • これで字幕の描画が大幅に改善され、位置、サイズ、ルビ、DRCS 含め ARIB 字幕が完璧に描画されるようになりました!!
      • TVTest の TVCaptionMod2 と比較しても遜色なく忠実に描画できていてすごいです!驚くべき速さで実装して頂いた monyone 氏に感謝してもしきれません
      • キャプチャ機能の方でも字幕が表示されている場合はそれを含めてキャプチャできるようになっています
        • Shift キーを押しながらで字幕を表示中でも字幕を入れずにキャプチャします
      • 詳細: https://twitter.com/TVRemotePlus/status/1355591344354299906
    • iPhone / iPad 端末での互換性改善と不具合修正
      • iOS / iPadOS Safari (Webkit) は誰が何と言おうと最悪なバグを長年放置している時点でクソ
        • 散々無駄骨折られて無駄にした時間を返せ、さもなくば iOS / iPadOS で Webkit 以外のブラウザエンジンを認めないのをやめろ
      • ファイル再生でエンコード中、Safari のネイティブ HLS プレイヤーで再生時間が最新のセグメントの範囲にシークされてしまう不具合を修正
        • 以前から挙動は把握していましたが修正できていませんでした
        • 結局 currentTime に 0 ではなく 0.000001 を入れればシークしてくれることが分かり唖然…(ふざけんな)
      • hls.js が利用できないブラウザ(主に iOS Safari)でキャプチャに失敗する不具合を修正
        • こちらの実装も一部良くなかったけど、結局 hls.js を有効化しているともれなく失敗する事が分かって hls.js をやめました
      • iPad Safari の PWA モード等で Picture-in-Picture が使えない場合にエラーメッセージを表示するようにした
        • 本当に不可解なんですが、iPad Safari の「PWA モードのみ」Picture-in-Picture が使えないようです
        • API 上は使える判定になっていたりで使えない事自体はどうしようもありません
      • hls.js が利用できないブラウザでプレーヤーの初期化が失敗する不具合を修正
        • aribb24.js の導入に関連する気もするけどもはや調べる余力がなかった
      • フルスクリーン関連のブラウザの互換性を改善
        • iOS Safari では Fullscreen API が使えず、Safari 独自の謎 API で動画だけ「Safari 側の標準プレイヤーで」再生されます
        • これ周りで不具合があったし、実装も良くなかったので改善しました
      • iPad Safari で hls.js を使うのをやめて、安定性向上と引き換えに字幕が表示できなくなった
        • 字幕が表示できなくなったのは hls.js をやめた関係です
        • iPad Safari の Media Source Extension API はブラウザ側に致命的なバグが複数あり、字幕を表示させるために何日も格闘しましたが結局まともに再生することができず、諦めました
        • ファイル再生を NVEnc でエンコードすると再生できなくなる、ライブ配信の切り替わりに失敗する、キャプチャが真っ黒になる、WebGL ならいけるかとキャプチャを試すと今度は映像が真っ黒になって CSS で無理やりリドローを掛けてなんとか 10fps で描画される程度でまともに見れない…等々
        • 結局ネイティブの HLS プレイヤーが一番安定することが分かり、やむを得ず安定性の向上を優先しました
        • aribb24.js の作者の monyone 氏が iOS / iPadOS Safari のネイティブ HLS プレイヤーでも ARIB 字幕を表示する謎の技術を編み出して下さったので、次のリリースではもしかすると iPhone 含め iPad で字幕が表示できるようになるかもしれません
    • Android 版 Firefox での互換性改善と不具合修正
      • Android 版 Firefox でフルスクリーンにできない不具合を修正
        • Fullscreen API の prefix 地獄がつらかった…
      • Android 向け Firefox でキャプチャに失敗する不具合のエラー捕捉を改善
    • ナビゲーションメニューを垂直に表示できるようにした
      • 個人設定 →[ナビゲーションメニューを垂直に配置 (*)]から設定できます
      • 横長のビューポートでもっとプレイヤーを大きくしたいのに上のヘッダーが邪魔で横の余白だけ余ってるって事があるかと思いますが、そういう時に使うとプレイヤーをより大きく表示できます
      • お使いの PC やタブレットの画面レイアウトに応じて適宜設定してみてください
    • 画面全体をフルスクリーンで表示できるようにした
      • 今までもプレイヤーをフルスクリーンにする事はできましたが、新たに TVRemotePlus の画面全体をフルスクリーンにすることができるようになります
      • 画面右上の︙メニュー → [フルスクリーンで表示]からフルスクリーンに切り替えられます
      • iOS Safari では Fullscreen API が動かないので使えません
      • キーボードショートカットは E キーに割り当てています
    • キャプチャした画像を拡大表示できるようにした
      • 要望ありがとうございました、キャプチャしたシーンの確認などにどうぞ
      • PCでは右クリック、スマホやタブレットでは長押しすると拡大画像が表示されます
      • 今のところ機能として用意はしていませんが、拡大画像を右クリックor長押しすればブラウザに画像を保存できます
      • 詳細: https://twitter.com/TVRemotePlus/status/1375860345344978944
    • 画質設定を個人設定から上書きできるようにした
      • 以前から要望があって、特に外出時に画質を下げ通信量を節約して使いたいケース等で有用そうだったので実装しました
      • 「環境設定を引き継ぐ」に設定していれば(既定)環境設定の画質設定がそのまま使われます
    • 実況勢いの情報の取得元を namami (http://jk.from.tv/) に変更
      • 今まで取得元にしていたちくラン側の仕様変更で実況勢いが取得できなくなってしまったので、暫定的対応だったこともあって namami に変更しました
      • この変更でコミュニティベースの実況チャンネルで現在実況番組が放送されていない場合に実況勢いが - にならなくなりますが、そこまで問題にならないと思うので様子見です
      • あと一度リロードしないと実況勢いが更新されなかったっぽいのも修正しました
    • コミュニティベースの実況チャンネルを追加
      • tvk・テレ玉・WOWOW PRIME・WOWOW LIVE・WOWOW CINEMA・BSアニマックス の実況チャンネルが追加されました
      • 過去ログ API 側でも対応済みです(もっとも稼働することがあまりないようですが)
    • リロード後もチャンネルリストのタブの選択を保存するようにした
      • ご要望ありがとうございました、ザッピングみたいな事がしたい時に便利だと思います
      • くどいかなーとも思うので、要望があれば次のバージョンでオンオフを切り替えられるようにします
    • ヘッダーに録画番組と設定へのリンクを表示するようにした
      • 今までサイドメニューを開く → リンクをクリックする、と 2 ステップかかっていたのがリンクをクリックする 1 ステップだけでできるようになるので、より操作が楽になると思います
      • タブレット以上の横幅で表示されます、縦メニューにも対応済みです
      • 詳細: https://twitter.com/TVRemotePlus/status/1372964991658172419
    • 局ロゴを横長の長方形で表示するようにした
      • 今まで長らく正方形にクロップして表示していましたが、クロップせず全て表示してほしいという声が寄せられていました
      • スマホでも長方形で表示されます(その代わり表示サイズは以前よりも若干小さくなります)
      • 詳細: https://twitter.com/TVRemotePlus/status/1373323612313190405
    • コメントリストのパフォーマンスのデフォルト設定を「軽量」に変更した
      • アップデートを重ねた結果、もはや標準との違いはコメントリストのコメントが改行されるか、一行で表示されてはみ出たコメントは ... で切り捨てられるかの違いだけになっていたためです
      • コメントリストは「標準」だとコメント数が多くなればなるほど重くなってコメント描画にも支障をきたしますが、「軽量」ならそれが改善されます
      • 特にスペックの低い PC やタブレットでは軽量にしておくことを”強く”推奨します(「標準」だとコメント数の多い番組では最悪フリーズします)
    • ダークモードのデフォルト設定を OS のテーマと連動するようにした (Closed #2)
      • 初回アクセス時( Cookie に tvrp_settings がない状態)にブラウザがダークモードならダークモードで、それ以外ならライトモードに設定します
    • L字クロップの設定の有効/無効を切り替えられるようにした
      • そもそもL字にやられない事を祈るばかりですが、だいたい特定の局だけ表示されて他だとL字になってなかったりするので、
        設定をリセットしなくても有効/無効を切り替えられるようにしてみました
      • 詳細: https://twitter.com/TVRemotePlus/status/1374415495013695490
    • チャンネルリストのスライダーの実装を大幅にリファクタリング
      • リファクタリングに加え Swiper ライブラリ自体の更新も行い、より安定して動作するようになりました
      • 以前は画面をリサイズするとチャンネルリストの幅がはみ出してしまったり機能しないといったケースがあったのですが、そういった不具合がなくなります
    • 番組情報・チャンネルリストの更新処理をより軽量化
      • 更新処理を工夫したことで更新時の負荷がかなり軽減されるはず(PC だとスペック高くて体感できないけど)
      • 更新負荷が軽くなったので、更新する頻度を 10 秒から 8 秒に少し短くしました
    • TVRemotePlus が使う Cookie に全て tvrp_ の prefix を付与した
      • Cookie を settings → tvrp_settings, twitter → tvrp_twitter_settings, twitter_session → tvrp_twitter_sesson, watching_session → tvrp_watching_session
        にそれぞれリネームしました
      • こうすることで Cookie が衝突する自体を避けられるし(同じホストならポートが別でも Cookie が共通になってしまう)、管理もしやすくなります
      • 個人設定諸々がリセットされるのはこの変更の影響です
    • その他の改善
      • キーボードショートカット一覧のスタイル崩れの修正と配置の調整
      • ︙メニューの項目を並び替え
      • 局ロゴをブラウザにキャッシュしてもらえるようにした
        • PHP 側で EMWUI のロゴを出力しているのでページのロード毎に局ロゴのダウンロードが行われていましたが、
          ほとんど変わることのない地デジ/BS/CS合わせて100チャンネル近くの局ロゴがリロード毎にダウンロードされるのは単に遅くなるだけなので、キャッシュさせるようにしました
      • L字クロップの設定を LocalStorage に保存するようにした
        • 今までは個人設定と同じ Cookie に保存していましたが、サーバー側で処理するわけでもなく Cookie に置いておく理由がなかったため
      • ヘッダーの色味を調整
        • 以前からダークモード時に他がダークブルーなのにヘッダーだけ青っぽくないのが気になっていたので、ちょっとだけ青っぽい色にした
      • プレイヤーから AirPlay ボタンを削除
      • Android 版 Chrome などで上から下に引っ張るとリロードされる機能を無効化
        • 普段は便利な機能ですが、TVRP の場合誤操作の原因になったり、PWA でフルスクリーンで運用する場合にステータスバーを表示する操作の邪魔になる場合があったため
        • リロードボタンもあるのでそこまで問題にはならないと思います
      • ツイートを送信する際のハッシュタグのロジックを大幅に改善
        • 今までスペース等をハッシュタグフォームに入れるとスペースにハッシュタグがついてしまうことがあり不具合が多かったので、実装し直しました
      • 設定ページの文言を現状に合わせて修正
      • 設定のデフォルト値の調整
        • HLS 周りのデフォルト設定を変更
      • 過去ログのコメントが空だった場合にメッセージを表示するようにした
      • コードの書式を整理
      • npp*64_10.dll を削除
        • NVEncC に付属していたものですが、特定のフィルタを使わない限りは不要で、さらにファイルサイズが合計で 67MB もありました
        • エンコード処理に支障がないことを確認できたので削除しました
      • jQuery を 3.6.0 に更新
      • Swiper を 6.5.0 に更新
      • QSVEncC を 4.13 に更新
      • NVEncC を 5.29 に更新
      • VCEEncC を 6.09 に更新
      • TSTask を更新
        • 最近(といってももう1年近く前)にビルドしたものに差し替えました
      • スタイルの調整・改善
    • その他の不具合修正
      • スマホの画面の向きを切り替えると正常にプレイヤーのフロート表示ができなくなる不具合を修正
      • スマホでプレイヤーのコンテナの高さが画面の高さを超えるとプレイヤーの表示がおかしくなる不具合を修正
        • プレイヤーの高さが画面の高さを超えている事自体が良くないので、プレイヤーの高さの最大値を画面の高さにすることで解決しました
      • 画面がリサイズされるとコメントリストが中途半端に手動スクロールになってしまうことがある不具合を修正
        • 正直直ってるかは微妙なんだけど、以前より回数は減ってるのでヨシ!(タイミングがシビアなのでどうしようもない)
      • エンコーダーのログを書き出す設定にしている場合、ストリームをライブ配信からファイル再生に変更できない不具合を修正
      • 東海テレビ011 など、末尾に3桁の数字がつくチャンネルで実況勢いを取得できない不具合を修正
      • TVTest のチャンネル設定ファイルに 1 や 2 がつかない「TOKYO MX」で登録されている場合に実況勢いを取得できない不具合を修正
      • 存在しない SourceMap の URL を削除
      • ファイル再生でコメントに date_usec プロパティがない場合にコメントの読み込みに失敗する不具合を修正
      • ウインドウ幅が 500 ~ 510 ピクセルの時に表示が大幅に崩れる不具合を修正
      • コメント数表示でエラーになる不具合を修正

アーカイブは 64bit 版のみです。
下の Assets を開き、TVRemotePlus-2.5.0.7z または Source code (zip) からダウンロードしてください。
7z の方が早くダウンロードできますが、別途 7-zip・lhaplus などの解凍ソフトが必要です。

解凍したフォルダ内の install.bat をダブルクリックで実行し、インストールします。
アップデートの場合は同様に実行した後、[インストールするフォルダ] に TVRemotePlus のインストールフォルダを指定します。
アップデート後は一度ブラウザのキャッシュを削除し、さらに PC であれば Ctrl + Shift + R でキャッシュを完全に削除してからアクセスしてください。