Skip to content
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

一括登録すると,動画が再生できない #925

Closed
ties-mitsuhashi opened this issue May 1, 2023 · 7 comments
Closed

一括登録すると,動画が再生できない #925

ties-mitsuhashi opened this issue May 1, 2023 · 7 comments
Assignees
Labels
bug Something isn't working ciritical

Comments

@ties-mitsuhashi
Copy link

そのバグについて

CHiLO-Speechで変換した動画入りZipを,一括登録(ストリーミングサーバーはWowza)すると,以下のエラーが表示され,動画が再生できない.
HLS.js error: networkError - fatal: true - manifestLoadError

なお,トピックの編集で,動画を単体でアップした際は,上記のようなエラーが出ずに,正常に再生される.

masterブランチ環境,2.4.0環境で発生した.

再現手順

可能なら、(最小)再現手順を書いてください:

1.CHiLO-Speechで,パワーポイントを動画入りZipに変換する.
2.1.のZipをCHiBi-CHiLOで一括登録する.
3.一括登録したブックをプレビューする,もしくは配信してLTIからブックを開く.

期待していた動作

動画がエラーなく再生される

スクリーンショット

image

動画入りZipに入っている動画ファイルと,一括登録でWowzaにアップされた動画では,ハッシュ値が異なる.
また,真空波動研にドラッグ・アンド・ドロップしたときの表示が異なる.

(Zipに入っている動画)
image

(一括登録でWowzaにアップされた動画)
image

(参考:トピックの編集画面からWowzaにアップされた動画)
image

@ties-mitsuhashi ties-mitsuhashi added bug Something isn't working ciritical labels May 1, 2023
@ties-mitsuhashi
Copy link
Author

2.4.0から2.3.0に差し戻した環境でも再現しました.

@ties-makimura
Copy link

nodeのバージョンをv18.15.0にさげることで,2.3.0でも2.4.0でも動画が再生されるようになるのを確認.

@kou029w
Copy link

kou029w commented May 23, 2023

@acutus-fujii
Copy link

acutus-fujii commented Jul 27, 2023

症状を詳しく調べたところ、以下のことがわかりました。

  • 最初の 64kbyte のデータが誤っている、ファイルサイズは正常
  • その後、正しい先頭データがある
  • 128kbyte の手前で正しいデータが正しい位置にあらわれる
  • その後はファイル末尾まで正しい

stream を使う現コードを残したまま JSZip を使おうと計画していましたが、unzipper の Extract ではなく Parse を使うと問題が発生しないことに気がつきました。

Extract には、バッファを上書きしてしまうバグがあるのではと想定しています。

JSZip はブラウザで動作するために、zlib を使わない実装になっていて、パフォーマンスの点で不安があります。

@acutus-fujii acutus-fujii self-assigned this Jul 31, 2023
@acutus-fujii
Copy link

データを見直したところ、オリジナルの内容がすべて出力されていることがわ
かりました。「バッファの上書き」ではなく、データを書く順番を間違えてい
る感じです。

オリジナル 間違い
00000000-0000f765 00010000-0001f766
0000f766-0001f765 00000000-00010000
0001f766-end 0001f766-end
オリジナル              間違い

64kbyte弱 -----\ /----> 64kbyte
                X
64kbyte   -----/ \----> 64kbyte弱

残り全部  ------------> 残り全部
オリジナル
00000000  00 00 00 20 66 74 79 70  69 73 6f 6d 00 00 02 00  |... ftypisom....|
0000f760  f5 ef af 7d 7a 15 ee b5  c0 01 0e 37 af ec a1 38  |...}z......7...8|
0001f750  57 99 60 87 d8 41 33 b9  65 eb 43 01 5a 24 30 c4  |W.`..A3.e.C.Z$0.|
0001f760  11 3c 7c 4f f0 2c 7e 4f  af 89 ca 68 5f f7 25 f0  |.<|O.,~O...h_.%.|

間違い
00000000  ee b5 c0 01 0e 37 af ec  a1 38 44 20 00 00 00 00  |.....7...8D ....|
0000fff0  33 b9 65 eb 43 01 5a 24  30 c4 11 3c 7c 4f f0 2c  |3.e.C.Z$0..<|O.,|
00010000  00 00 00 20 66 74 79 70  69 73 6f 6d 00 00 02 00  |... ftypisom....|
0001f760  f5 ef af 7d 7a 15 7e 4f  af 89 ca 68 5f f7 25 f0  |...}z.~O...h_.%.|

@acutus-fujii
Copy link

nodejs 18.16 の changelog で一番怪しいと思っている変更点です。

stream: always delay construct callback by a nextTick #46818
nodejs/node#46818

@acutus-fujii
Copy link

#990 がマージされたのでクローズする。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ciritical
Projects
None yet
Development

No branches or pull requests

4 participants