Failed to decode waveform from mp4 file for the dev build
chrox opened this issue · 10 comments
But the same video worked on the 0.3.4 release build.
This screenshot was running on the dev build on macOS 14.3.1 M1 chip with command yarn enjoy:start
with the latest commit :
And this screenshot was running on the 0.3.4 release build on the same mac:
The downloaded files are the same: enjoy://library/videos/f2e69d7a31f789f253b63ac49aa1cdc1.mp4
. It seems the enjoy
scheme is failed to be translated to a blob content on the dev build like in the release blob:file:///c318e03c-b867-4925-8f74-7af80c3f06ff
.
What is even more weird is that when the same video file is successfully decoded once on the release build then it can be decoded on the dev build. But the blob content is different from that on the release build like this: blob:http://localhost:5173/a9e0cbe1-46d3-47d9-9741-97dc26438396
.
Is there anything I missed to config on the dev build?
That's weird. I'll look into it.
I've tested it, but I can't replicate your result. I think the video might be corrupted when you added it in the dev build.
Try removing it and adding it again. Does the error still persist?
Have you tried other videos? Does the error occur in all of them?
Have you tried other videos? Does the error occur in all of them?
Yes, including videos from the @TED
and the @CNN
youtube channels and from custom video files. It also affects local video files w/wo additional ffmpeg transcode.
This is the package info on my macOS.
➜ enjoy git:(main) node --version
v22.5.1
➜ enjoy git:(main) yarn info --name-only
├─ @andrkrn/ffprobe-static@npm:5.2.0
├─ @electron-forge/cli@npm:7.4.0
├─ @electron-forge/maker-deb@npm:7.4.0
├─ @electron-forge/maker-dmg@npm:7.4.0
├─ @electron-forge/maker-rpm@npm:7.4.0
├─ @electron-forge/maker-squirrel@npm:7.4.0
├─ @electron-forge/maker-zip@npm:7.4.0
├─ @electron-forge/plugin-auto-unpack-natives@npm:7.4.0
├─ @electron-forge/plugin-fuses@npm:7.4.0
├─ @electron-forge/plugin-vite@npm:7.4.0
├─ @electron-forge/publisher-github@npm:7.4.0
├─ @electron-forge/publisher-s3@npm:7.4.0
├─ @electron/fuses@npm:1.8.0
├─ @hookform/resolvers@npm:3.9.0
├─ @langchain/community@npm:0.2.22
├─ @mozilla/readability@npm:0.5.0
├─ @playwright/test@npm:1.45.3
├─ @radix-ui/react-accordion@npm:1.2.0
├─ @radix-ui/react-alert-dialog@npm:1.1.1
├─ @radix-ui/react-aspect-ratio@npm:1.1.0
├─ @radix-ui/react-avatar@npm:1.1.0
├─ @radix-ui/react-collapsible@npm:1.1.0
├─ @radix-ui/react-dropdown-menu@npm:2.1.1
├─ @radix-ui/react-hover-card@npm:1.1.1
├─ @radix-ui/react-icons@npm:1.3.0
├─ @radix-ui/react-label@npm:2.1.0
├─ @radix-ui/react-menubar@npm:1.1.1
├─ @radix-ui/react-popover@npm:1.1.1
├─ @radix-ui/react-progress@npm:1.1.0
├─ @radix-ui/react-radio-group@npm:1.2.0
├─ @radix-ui/react-scroll-area@npm:1.1.0
├─ @radix-ui/react-select@npm:2.1.1
├─ @radix-ui/react-separator@npm:1.1.0
├─ @radix-ui/react-slider@npm:1.2.0
├─ @radix-ui/react-slot@npm:1.1.0
├─ @radix-ui/react-switch@npm:1.1.0
├─ @radix-ui/react-tabs@npm:1.1.0
├─ @radix-ui/react-toast@npm:1.2.1
├─ @radix-ui/react-toggle@npm:1.1.0
├─ @radix-ui/react-tooltip@npm:1.1.2
├─ @rails/actioncable@npm:7.1.3
├─ @sentry/electron@npm:5.3.0
├─ @tailwindcss/typography@npm:0.5.13
├─ @types/ahoy.js@npm:0.4.2
├─ @types/autosize@npm:4.0.3
├─ @types/command-exists@npm:1.2.3
├─ @types/electron-squirrel-startup@npm:1.0.2
├─ @types/fluent-ffmpeg@npm:2.1.25
├─ @types/html-to-text@npm:9.0.4
├─ @types/intl-tel-input@npm:18.1.4
├─ @types/lodash@npm:4.17.7
├─ @types/mark.js@npm:8.11.12
├─ @types/node@npm:22.1.0
├─ @types/rails__actioncable@npm:6.1.11
├─ @types/react-dom@npm:18.3.0
├─ @types/react@npm:18.3.3
├─ @types/validator@npm:13.12.0
├─ @types/wavesurfer.js@npm:6.0.12
├─ @typescript-eslint/eslint-plugin@npm:8.0.0
├─ @typescript-eslint/parser@npm:8.0.0
├─ @uidotdev/usehooks@npm:2.4.1
├─ @vidstack/react@npm:1.11.30
├─ @vitejs/plugin-react@npm:4.3.1
├─ ahoy.js@npm:0.4.4
├─ autoprefixer@npm:10.4.20
├─ autosize@npm:6.0.1
├─ axios@npm:1.7.3
├─ camelcase-keys@npm:9.1.3
├─ camelcase@npm:8.0.0
├─ chart.js@npm:4.4.3
├─ cheerio@npm:1.0.0-rc.12
├─ class-variance-authority@npm:0.7.0
├─ clsx@npm:2.1.1
├─ cmdk@npm:1.0.0
├─ command-exists@npm:1.2.9
├─ compromise-paragraphs@npm:0.1.0
├─ compromise-stats@npm:0.1.0
├─ compromise@npm:14.14.0
├─ dayjs@npm:1.11.12
├─ decamelize-keys@npm:2.0.1
├─ decamelize@npm:6.0.0
├─ echogarden@npm:1.5.0
├─ electron-context-menu@npm:4.0.1
├─ electron-devtools-installer@npm:3.2.0
├─ electron-log@npm:5.1.7
├─ electron-playwright-helpers@npm:1.7.1
├─ electron-settings@npm:4.0.4
├─ electron-squirrel-startup@npm:1.0.1
├─ electron@npm:31.3.1
├─ enjoy@workspace:enjoy
├─ eslint-import-resolver-typescript@npm:3.6.1
├─ eslint-plugin-import@npm:2.29.1
├─ eslint@npm:9.8.0
├─ ffmpeg-static@npm:5.2.0
├─ flora-colossus@npm:2.0.0
├─ fluent-ffmpeg@npm:2.1.3
├─ fs-extra@npm:11.2.0
├─ html-to-text@npm:9.0.5
├─ https-proxy-agent@npm:7.0.5
├─ i18next@npm:23.12.2
├─ intl-tel-input@npm:23.8.0
├─ js-md5@npm:0.8.3
├─ langchain@npm:0.2.12
├─ lodash@npm:4.17.21
├─ lucide-react@npm:0.424.0
├─ mark.js@npm:8.11.1
├─ microsoft-cognitiveservices-speech-sdk@npm:1.38.0
├─ next-themes@npm:0.3.0
├─ octokit@npm:4.0.2
├─ openai@npm:4.53.2
├─ pitchfinder@npm:2.3.2
├─ postcss@npm:8.4.40
├─ progress@npm:2.0.3
├─ proxy-agent@npm:6.4.0
├─ react-activity-calendar@npm:2.3.1
├─ react-dom@npm:18.3.1
├─ react-hook-form@npm:7.52.2
├─ react-hotkeys-hook@npm:4.5.0
├─ react-i18next@npm:15.0.0
├─ react-markdown@npm:9.0.1
├─ react-resizable-panels@npm:2.0.22
├─ react-router-dom@npm:6.26.0
├─ react-tooltip@npm:5.28.0
├─ react@npm:18.3.1
├─ reflect-metadata@npm:0.2.2
├─ rimraf@npm:6.0.1
├─ sequelize-typescript@npm:2.1.6
├─ sequelize@npm:6.37.3
├─ sonner@npm:1.5.0
├─ sqlite3@npm:5.1.7
├─ tailwind-merge@npm:2.4.0
├─ tailwind-scrollbar-hide@npm:1.1.7
├─ tailwind-scrollbar@npm:3.1.0
├─ tailwindcss-animate@npm:1.0.7
├─ tailwindcss@npm:3.4.7
├─ ts-node@npm:10.9.2
├─ tslib@npm:2.6.3
├─ typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>::version=5.5.4&hash=379a07
├─ umzug@npm:3.8.1
├─ update-electron-app@npm:3.0.0
├─ vite-plugin-static-copy@npm:1.0.6
├─ vite@npm:5.3.5
├─ wavesurfer.js@npm:7.8.2
├─ zod-to-json-schema@npm:3.23.2
├─ zod@npm:3.23.8
└─ zx@npm:8.1.4
After deleting the enjoy/node_modules
and rerun yarn install
, the problem disappears. Cheers!
And now the packages list is here:
➜ enjoy git:(main) yarn info --name-only
├─ @andrkrn/ffprobe-static@npm:5.2.0
├─ @electron-forge/cli@npm:7.4.0
├─ @electron-forge/maker-deb@npm:7.4.0
├─ @electron-forge/maker-dmg@npm:7.4.0
├─ @electron-forge/maker-rpm@npm:7.4.0
├─ @electron-forge/maker-squirrel@npm:7.4.0
├─ @electron-forge/maker-zip@npm:7.4.0
├─ @electron-forge/plugin-auto-unpack-natives@npm:7.4.0
├─ @electron-forge/plugin-fuses@npm:7.4.0
├─ @electron-forge/plugin-vite@npm:7.4.0
├─ @electron-forge/publisher-github@npm:7.4.0
├─ @electron-forge/publisher-s3@npm:7.4.0
├─ @electron/fuses@npm:1.8.0
├─ @hookform/resolvers@npm:3.9.0
├─ @langchain/community@npm:0.2.22
├─ @mozilla/readability@npm:0.5.0
├─ @playwright/test@npm:1.45.3
├─ @radix-ui/react-accordion@npm:1.2.0
├─ @radix-ui/react-alert-dialog@npm:1.1.1
├─ @radix-ui/react-aspect-ratio@npm:1.1.0
├─ @radix-ui/react-avatar@npm:1.1.0
├─ @radix-ui/react-collapsible@npm:1.1.0
├─ @radix-ui/react-dropdown-menu@npm:2.1.1
├─ @radix-ui/react-hover-card@npm:1.1.1
├─ @radix-ui/react-icons@npm:1.3.0
├─ @radix-ui/react-label@npm:2.1.0
├─ @radix-ui/react-menubar@npm:1.1.1
├─ @radix-ui/react-popover@npm:1.1.1
├─ @radix-ui/react-progress@npm:1.1.0
├─ @radix-ui/react-radio-group@npm:1.2.0
├─ @radix-ui/react-scroll-area@npm:1.1.0
├─ @radix-ui/react-select@npm:2.1.1
├─ @radix-ui/react-separator@npm:1.1.0
├─ @radix-ui/react-slider@npm:1.2.0
├─ @radix-ui/react-slot@npm:1.1.0
├─ @radix-ui/react-switch@npm:1.1.0
├─ @radix-ui/react-tabs@npm:1.1.0
├─ @radix-ui/react-toast@npm:1.2.1
├─ @radix-ui/react-toggle@npm:1.1.0
├─ @radix-ui/react-tooltip@npm:1.1.2
├─ @rails/actioncable@npm:7.1.3
├─ @sentry/electron@npm:5.3.0
├─ @tailwindcss/typography@npm:0.5.13
├─ @types/ahoy.js@npm:0.4.2
├─ @types/autosize@npm:4.0.3
├─ @types/command-exists@npm:1.2.3
├─ @types/electron-squirrel-startup@npm:1.0.2
├─ @types/fluent-ffmpeg@npm:2.1.25
├─ @types/html-to-text@npm:9.0.4
├─ @types/intl-tel-input@npm:18.1.4
├─ @types/lodash@npm:4.17.7
├─ @types/mark.js@npm:8.11.12
├─ @types/node@npm:22.1.0
├─ @types/rails__actioncable@npm:6.1.11
├─ @types/react-dom@npm:18.3.0
├─ @types/react@npm:18.3.3
├─ @types/validator@npm:13.12.0
├─ @types/wavesurfer.js@npm:6.0.12
├─ @typescript-eslint/eslint-plugin@npm:8.0.0
├─ @typescript-eslint/parser@npm:8.0.0
├─ @uidotdev/usehooks@npm:2.4.1
├─ @vidstack/react@npm:1.11.30
├─ @vitejs/plugin-react@npm:4.3.1
├─ ahoy.js@npm:0.4.4
├─ autoprefixer@npm:10.4.20
├─ autosize@npm:6.0.1
├─ axios@npm:1.7.3
├─ camelcase-keys@npm:9.1.3
├─ camelcase@npm:8.0.0
├─ chart.js@npm:4.4.3
├─ cheerio@npm:1.0.0-rc.12
├─ class-variance-authority@npm:0.7.0
├─ clsx@npm:2.1.1
├─ cmdk@npm:1.0.0
├─ command-exists@npm:1.2.9
├─ compromise-paragraphs@npm:0.1.0
├─ compromise-stats@npm:0.1.0
├─ compromise@npm:14.14.0
├─ dayjs@npm:1.11.12
├─ decamelize-keys@npm:2.0.1
├─ decamelize@npm:6.0.0
├─ echogarden@npm:1.5.0
├─ electron-context-menu@npm:4.0.1
├─ electron-devtools-installer@npm:3.2.0
├─ electron-log@npm:5.1.7
├─ electron-playwright-helpers@npm:1.7.1
├─ electron-settings@npm:4.0.4
├─ electron-squirrel-startup@npm:1.0.1
├─ electron@npm:31.3.1
├─ enjoy@workspace:enjoy
├─ eslint-import-resolver-typescript@npm:3.6.1
├─ eslint-plugin-import@npm:2.29.1
├─ eslint@npm:9.8.0
├─ ffmpeg-static@npm:5.2.0
├─ flora-colossus@npm:2.0.0
├─ fluent-ffmpeg@npm:2.1.3
├─ fs-extra@npm:11.2.0
├─ html-to-text@npm:9.0.5
├─ https-proxy-agent@npm:7.0.5
├─ i18next@npm:23.12.2
├─ intl-tel-input@npm:23.8.0
├─ js-md5@npm:0.8.3
├─ langchain@npm:0.2.12
├─ lodash@npm:4.17.21
├─ lucide-react@npm:0.424.0
├─ mark.js@npm:8.11.1
├─ microsoft-cognitiveservices-speech-sdk@npm:1.38.0
├─ next-themes@npm:0.3.0
├─ octokit@npm:4.0.2
├─ openai@npm:4.53.2
├─ pitchfinder@npm:2.3.2
├─ postcss@npm:8.4.40
├─ progress@npm:2.0.3
├─ proxy-agent@npm:6.4.0
├─ react-activity-calendar@npm:2.3.1
├─ react-dom@npm:18.3.1
├─ react-hook-form@npm:7.52.2
├─ react-hotkeys-hook@npm:4.5.0
├─ react-i18next@npm:15.0.0
├─ react-markdown@npm:9.0.1
├─ react-resizable-panels@npm:2.0.22
├─ react-router-dom@npm:6.26.0
├─ react-tooltip@npm:5.28.0
├─ react@npm:18.3.1
├─ reflect-metadata@npm:0.2.2
├─ rimraf@npm:6.0.1
├─ sequelize-typescript@npm:2.1.6
├─ sequelize@npm:6.37.3
├─ sonner@npm:1.5.0
├─ sqlite3@npm:5.1.7
├─ tailwind-merge@npm:2.4.0
├─ tailwind-scrollbar-hide@npm:1.1.7
├─ tailwind-scrollbar@npm:3.1.0
├─ tailwindcss-animate@npm:1.0.7
├─ tailwindcss@npm:3.4.7
├─ ts-node@npm:10.9.2
├─ tslib@npm:2.6.3
├─ typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>::version=5.5.4&hash=379a07
├─ umzug@npm:3.8.1
├─ update-electron-app@npm:3.0.0
├─ vite-plugin-static-copy@npm:1.0.6
├─ vite@npm:5.3.5
├─ wavesurfer.js@npm:7.8.2
├─ zod-to-json-schema@npm:3.23.2
├─ zod@npm:3.23.8
└─ zx@npm:8.1.4
I diffed the packages lists of the old and the new dev build. And found no difference. But the problematic dev build might have some broken packages installed since the networking condition was poor and I manually interrupted the yarn install
several times. And the yarn install
for the working dev build goes smoothly. Anyway thank you for your help. I'm now using enjoy
to learn German. And I'm still reading the enjoy
codebase for now and would like to contribute to this project.
The problem disappears after a clean yarn install
and is not replicable. Closing this now.