-
Notifications
You must be signed in to change notification settings - Fork 144
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
録画完了後エンコードされないものがある #382
Comments
録画終了処理が一部うまくできていないようですね。 原因が不明ですがソース追ってみます。 |
|
まず、エンコードが始まらない理由ですが、これは録画の状態が録画中から録画済みへ移行しないためです。 そのため、今回スクショで頂いた録画の中で録画中から録画済みへ移動しなかった録画のログを提供していただきたいです。(一枚目のスクショの録画中に残っている番組であればどれでも大丈夫です。) お手数おかけしますが、よろしくお願い致します。 |
家に帰ってからもう一度確認しますが、ログは貼ってあるやつで全てだっただと思います。 1824がD4DJ First Mix(第11話) で 外部からデータベースのアイテムを読み書きするスクリプトが走ってるのでそれの影響もないか確認します |
情報ありがとうございます。
使用している DB は何でしょうか? 今回うまく動作していない部分が↓の recEnd 関数なのですが、
この関数内のどこが上手く行っていないのか、もしくは recEnd が呼び出されていないのか不明なのでログを追加します。 |
recEnd のログ拡充を master に反映させました。 |
データベースはmariadbを使っています。 一応、データベースの様子も貼っておきます
TSが録画した生データで、正常に動作すればMPEG2-TSに変換されます。で別のところでmp4にしてあげてそれをRe:Driveとしてvideo_fileに外部のphpスクリプトで追加してあげてます。
|
適用後、早速発生してくれた(?)のでログ貼ります。 ログを見た感じ、 とりあえず、録画停止通知スクリプトで20sほどsleepをしている部分があったのでそれを削除してまたやってみます。 system.log (Operator)
system.log (Service)
|
ソースを見る感じ、mirakurunへのstreamが閉じてない気もするのでmirakurunのhttpログも貼っておきます STDOUT
|
ログ比較
疑問点
|
情報提供ありがとうございます。 追記したログのメッセージミスりました。
故に finish stream ログが残らず、recordedId の 2157 ではなく、reserveId 1850 が表示されたようです。 おそらく、epgの定期更新によってルール更新処理が走り (下記ログ1行目)
stop recording のログが出ていているので、本来であれば ↓ の部分によってmirakurunのストリームを切断し、ストリーム切断検出後 recEnd 関数が呼ばれるはずなのですが動いていないようですね。 EPGStation/src/model/operator/recording/RecorderModel.ts Lines 645 to 648 in 9871059
原因追ってみます。 |
一応mirakurunのログを貼っておきます
|
これ、アニメ STEINS;GATE 第16話を閉じるときは |
ログ提供ありがとうございます。 おそらく mirakurun 側は正しく処理ができていると思います。 ↑が該当部分コードだと思いますが、 this.emit("close");
this.emit("end"); とあるのでストリームの切断自体は正しくできていると思います。 mirakurun のソースを見る限り↓ログが出ていればストリームの停止はできているようですね。
epgstation 側でもほぼ同時刻に stream 切断処理を行っているので、epgstation 側のストリーム停止判定に何か悪影響を与えているのかもしれません。
もし、ほぼ同時刻に mirakurun と epgstation からストリームを切断していることが原因であれば、epgstation の cancel 処理を工夫すれば回避できそうです。(根本解決ではないですが) それ用にブランチを切るのでそれで様子を見てもらえますか? |
fix-382 ブランチとして切りました。 |
ありがとうございます |
適用しましたがまだ発生しているみたいです。 スクショ放送00:30~01:00に 抜粋するとこんな感じでdestroy streamまでは呼ばれたもののfinsh streamが呼ばれていませんでした。 system.log (Operator)
全部含めたログは長くなるので gist に貼っておきました。 Mirakurun
|
適応と経過観察及びログの提供ありがとうございます。 ログ精査します。 |
とりあえず、僕側でRecorderModelの分岐や関数のところにログを加えまくったので録画に失敗した時にどの経路でキャンセルが起きているのかを伝えさせていただきます |
やはり番組表更新が原因みたいでした
|
mirakuruneventendtimeoutが1000じゃ足りないんですかね。。 |
解析ありがとうございます。
最後の行恐ろしく不穏なのですが、これは .ts を .m2ts にリネームする過程で削除しているだけですか?(config/postLine2.shでやってる?) |
enc2.js でtsファイルからm2tsファイルにエンコードしてます(不要なepgや時間情報を落とす為に) あと書き足りなかったのですが、録画完了できずに録画中になってるのは1920の小野下野のどこでもクエスト2 #2です。ジョジョは問題なくエンコードできてます |
説明ありがとうございます。
そうですよね。安心しました。 今のところご推察どおり、ルールの更新による録画キャンセル時の挙動が起因しているようですね。
これって何か効果得られましたか? これでもだめなら、録画終了処理とキャンセル処理が何か上手く噛み合ってないところを根本的に見直す必要があると思うので、修正にかなり時間が掛かりそうです。 |
僕の不手際でYamlの文法ミスがあり昨日の夜はちゃんと5000が適用されていなかったので今晩が初めて5000msでの録画になります。 また明日報告します |
設定を変えましたがダメみたいですね…
|
|
結局、しばらく様子見してたんですが、 折角対応していただいたのに申し訳ございませんが、こちら側の問題だと思われますのでissue閉じさせていただきます。 |
なるほど、了解です。 |
PX-W3U4です。 |
環境
v2.0.2
v3.5.0
v14.15.1
v6.14.11
Ubuntu Server 20.04 (5.4.0-58-generic)
x64
480GB (100GB以上の空きスペース)
Issue
録画完了後、エンコードされないものがあり、放送終了から時間が経っても録画キューに残り続ける。
BS11イレブンでのみ発生する模様です。
エンコードコマンド
エンコードに利用しているコマンドは以下の通りでターミナルから実行したら普段よりエラーは多いもののちゃんとm2tsに変換できます。
五等分の花嫁∬ 第2話「七つのさよなら 第一章」 の後に D4DJ First Mix(第11話) がエンコードされるはずですが、
五等分の花嫁∬ 第2話「七つのさよなら 第一章」は無視されてD4DJ First Mix(第11話)のエンコードが始まっています。
ログ(Service)
ログ(Operator)
Configは以下のようになっていて、recordedTmpは設定していません。
録画後のプロセス
録画終了後、サムネ付きで外部にメッセージを送信するスクリプトを動かした後、 enc2.js でエンコードを行っています。
enc2.js は enc3.js のパラメータを少し変えただけのものです。
The text was updated successfully, but these errors were encountered: