wang-bin / fvp

Flutter video player plugin for all desktop+mobile platforms. download prebuilt examples from github actions. https://pub.dev/packages/fvp
BSD 3-Clause "New" or "Revised" License
197 stars 31 forks source link

Play Video From Uint8list #42

Closed mohammadinfo closed 1 year ago

mohammadinfo commented 1 year ago

I have an encrypted video that is very important, and I need to ensure its security. I download the video and then decrypt it. I want to save the decrypted file on the RAM rather than on the hard drive to make it inaccessible. What can I do? I want the decrypted file to go to RAM, and I want the video player to read it from there.

wang-bin commented 1 year ago

Currently not supported. Play when the whole file is saved? It will be easy to support.

mohammadinfo commented 1 year ago

I want a file to be temporarily saved, played by a video player, and then quickly deleted. However, Windows says the file is in use and cannot be deleted. I want it to read the file, take whatever it needs into RAM, and then remove any accessibility to the file, or find a way to make sure the user cannot access the file.

wang-bin commented 1 year ago

If you have a uint8list contains the whole file content, i can add a new url type, get the address and size from the url(for example 'mem://$addr+$size') and play it

mohammadinfo commented 1 year ago

I want exactly this: I first save the file, then convert it to a Uint8List, and I want it to have the capability to play the video from a Uint8List.

mohammadinfo commented 1 year ago

Sorry, when will the upgraded package be available ?

mohammadinfo commented 1 year ago

I kindly request information regarding the release date for the upgraded package. My project is currently pending, awaiting the availability of your package.

wang-bin commented 1 year ago

download the latest https://sourceforge.net/projects/mdk-sdk/files/nightly/mdk-sdk-windows-desktop-vs2022-x64.7z/download

import 'dart:ffi';
import 'package:ffi/ffi.dart';

Uint8List data = ...;
final cdata = calloc<Uint8>(data); // must be alive when playing
cdata.asTypedList(data.length).setRange(0, data.length, data);
_controller = VideoPlayerController.networkUrl(Uri.parse('mem://${cdata.address}+${data.length}'));
...
// release c heap after player disposed
await _controller.dispose();
calloc.free(cdata);
mohammadinfo commented 1 year ago

Without update your package is it work ?

wang-bin commented 1 year ago

yes, no change in fvp

mohammadinfo commented 1 year ago

Thanks 👍

mohammadinfo commented 1 year ago

download the latest https://sourceforge.net/projects/mdk-sdk/files/nightly/mdk-sdk-windows-desktop-vs2022-x64.7z/download

import 'dart:ffi';
import 'package:ffi/ffi.dart';

Uint8List data = ...;
final cdata = calloc<Uint8>(data.length); // must be alive when playing
cdata.asTypedList(data.length).setRange(0, data.length, data);
_controller = VideoPlayerController.networkUrl(Uri.parse('mem://${cdata.address}+${data.length}'));
...
// release c heap after player disposed
await _controller.dispose();
calloc.free(cdata);

image

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(media open error, invalid or unsupported media, null, null)

0 MdkVideoPlayerPlatform.create (package:fvp/src/video_player_mdk.dart:219:7)

#1 VideoPlayerController.initialize (package:video_player/video_player.dart:438:19) #2 _SeasonFileItemState.playVideo (package:aln_academy/screens/course/widgets/season_file_item.dart:772:5)
mohammadinfo commented 1 year ago

image

wang-bin commented 1 year ago
final cdata = calloc<Uint8>(data.length);
wang-bin commented 1 year ago

I need the full log

mohammadinfo commented 1 year ago
final cdata = calloc<Uint8>(data.length);

image

image

wang-bin commented 1 year ago

full log please. if fail to open a stream, the exceptions are the same, only the log tells the detail

mohammadinfo commented 1 year ago
flutter: fvp.FINE: 14:32:58.676: 782961704 player2147696392912 create(mem://2148325490752+21881218)
flutter: mdk.INFO: 14:32:58.680: default000001F40813CE60 new FrameReader...
flutter: mdk.INFO: 14:32:58.680: Registered audio backends: XAudio2 DSound null
flutter: mdk.INFO: 14:32:58.681: default000001F408140F10 new FrameReader...
flutter: mdk.INFO: 14:32:58.681: Registered audio backends: XAudio2 DSound null
flutter: mdk.INFO: 14:32:58.681: 000001F4081CAB80__cdecl mdk::abi::Player::Player(void)
flutter: mdk.INFO: 14:32:58.681: player property: avio.protocol_whitelist = file,rtmp,http,https,tls,rtp,tcp,udp,crypto,httpproxy,data,concatf,concat,subfile
flutter: mdk.INFO: 14:32:58.681: video decoders: "MFT:d3d=11", "D3D11", "CUDA", "FFmpeg"
flutter: mdk.INFO: 14:32:58.681: video decoders: "MFT:d3d=11", "D3D11", "CUDA", "FFmpeg"
flutter: mdk.INFO: 14:32:58.681: default FrameReader000001F40813CE60 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:32:58.681: default000001F40813CE60 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:32:58.681: default FrameReader000001F40813CE60 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:32:58.681: default000001F40813CE60 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:32:58.681: 000001F4034DFFF0 MediaControl.prepare(0, ...) mem://2148325490752+21881218
flutter: mdk.INFO: 14:32:58.681: default 000001F40813CE60 FrameReader.start(0, ...)
flutter: mdk.INFO: 14:32:58.681: default 000001F40813CE60 FrameReader::update MediaStatus 0=>0X2
flutter: fvp.FINE: 14:32:58.682: 84732776 player2147696392912 onMediaStatus: MediaStatus(noMedia) => MediaStatus(+loading)
flutter: mdk.INFO: 14:32:58.683: default FrameReader000001F40813CE60 state: 0=>0=>1, 0
flutter: mdk.INFO: 14:32:58.683: default FrameReader000001F40813CE60 state: 0=>1=>1, 0
flutter: mdk.INFO: 14:32:58.683: start frame reader thread: 15384
flutter: mdk.INFO: 14:32:58.683: mem: Url or protocol is not supported by MediaIO FFmpeg
flutter: mdk.INFO: 14:32:58.683: Try to use default MediaIO
flutter: mdk.INFO: 14:32:58.683: 000001F4034BFDA0 open url: mem://2148325490752+21881218
flutter: mdk.INFO: 14:32:58.683: Error avrt::avio_open2(&avio_, ffmpeg::from_file_uri(in.c_str()), flags, &cb, &dict) @127 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\AVFormatIO.cpp: (0xb0adaf08) Protocol not found
flutter: mdk.WARNING: 14:32:58.683: 000001F4034BFDA0url open error
flutter: mdk.WARNING: 14:32:58.683: Failed to create io for url. io: 000001F4034BFDA0, open: false
flutter: mdk.INFO: 14:32:58.683: default 000001F40813CE60 FrameReader::update MediaStatus 0X2=>0X2
flutter: mdk.INFO: 14:32:58.683: before avformat_open_input. io: 0000000000000000(/pb: 0000000000000000, url: mem://2148325490752+21881218
flutter: mdk.INFO: 14:32:58.683: Error avrt::avformat_open_input(&fmtctx_, ffmpeg::from_file_uri(in.c_str()), fmt, &dict) @209 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\FFmpegPacketIO.cpp: (0xb0adaf08) Protocol not found
flutter: mdk.INFO: 14:32:58.683: 15384default 000001F40813CE60 bool __cdecl mdk::abi::FrameReader::update(enum mdk::abi::MediaStatus) @1059: reset status_mask
flutter: mdk.INFO: 14:32:58.683: default 000001F40813CE60 FrameReader::update MediaStatus 0X2=>0X80000000
flutter: fvp.FINE: 14:32:58.683: 84732776 player2147696392912 onMediaStatus: MediaStatus(+loading) => MediaStatus(+invalid)
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(media open error, invalid or unsupported media, null, null)
#0      MdkVideoPlayerPlatform.create (package:fvp/src/video_player_mdk.dart:219:7)
<asynchronous suspension>
#1      VideoPlayerController.initialize (package:video_player/video_player.dart:438:19)
<asynchronous suspension>
#2      _SeasonFileItemState.playVideo (package:aln_academy/screens/course/widgets/season_file_item.dart:773:5)
<asynchronous suspension>

flutter: mdk.WARNING: 14:32:58.686: reader open error
flutter: mdk.INFO: 14:32:58.686: 15384default 000001F40813CE60 bool __cdecl mdk::abi::FrameReader::update(enum mdk::abi::MediaStatus) @1059: reset status_mask
flutter: mdk.INFO: 14:32:58.686: default 000001F40813CE60 FrameReader::update MediaStatus 0X80000000=>0X80000000
flutter: mdk.INFO: 14:32:58.687: 000001F4034DFFF0 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 2=>0, current state 0. status: 0X80000000
flutter: mdk.INFO: 14:32:58.687: default FrameReader000001F40813CE60 state: 0=>1=>0, 0
flutter: mdk.INFO: 14:32:58.687: default000001F40813CE60 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:32:58.687: 000001F40813CE60 bool __cdecl mdk::abi::FrameReaderImpl::unload(void), current status 0x80000000, invalid: 0x80000000, loading: 0, loaded: 0, buffering: 0, seeking: 0, prepared: 0, EOF: 0
flutter: mdk.INFO: 14:32:58.687: 000001F4081CAB80__cdecl mdk::abi::Player::~Player(void)64
flutter: mdk.INFO: 14:32:58.687: setNext from -1 url:
flutter: mdk.INFO: 14:32:58.688: default FrameReader000001F40813CE60 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:32:58.688: default000001F40813CE60 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:32:58.688: __cdecl mdk::abi::MediaPlayer::Private::~Private(void)
flutter: mdk.INFO: 14:32:58.688: 000001F4034DFFF0 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 0=>0, current state 0. status: 0X80000000
flutter: mdk.INFO: 14:32:58.688: 000001F4034E0780 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 0=>0, current state 0. status: 0
flutter: mdk.INFO: 14:32:58.688: default000001F408140F10 deleting FrameReader...
flutter: mdk.INFO: 14:32:58.688: player is destroyed
flutter: mdk.INFO: 14:32:58.688: __cdecl mdk::abi::VideoRenderer::Private::~Private(void) @125
wang-bin commented 1 year ago

I can't see libmdk version in your log. Do you set logger before registerWith()?

mohammadinfo commented 1 year ago

Yeah but check this please :

flutter: mdk.INFO: 14:45:48.841: 0.22.0 (git cc3b7dc) - Multimedia Development Kit. Copyright (c) 2016-2023 WangBin(QtAV author) <wbsecg1 at gmail.com>
Build for: Windows0x0600/10.0.22621 x86_64; MSVC1935; vcruntime14.35.32215.0/msvcp140.dll; 14:25:44 Sep 20 2023

flutter: fvp.FINE: 14:46:06.523: 2097559 player2695890485520 create(mem://2696622157888+21881218)
flutter: mdk.INFO: 14:46:06.544: default00000273BC28C480 new FrameReader...
flutter: mdk.INFO: 14:46:06.545: Registered audio backends: XAudio2 DSound null
flutter: mdk.INFO: 14:46:06.545: XAudio2_9.dll
flutter: mdk.INFO: 14:46:06.545: Build with XAudio2 from Win8+ SDK
flutter: mdk.INFO: 14:46:06.545: Try symbol 'XAudio2Create' from Windows SDK dll
flutter: mdk.INFO: 14:46:06.545: default00000273BC28CD20 new FrameReader...
flutter: mdk.INFO: 14:46:06.545: Registered audio backends: XAudio2 DSound null
flutter: mdk.INFO: 14:46:06.545: 00000273BCDDAC60__cdecl mdk::abi::Player::Player(void)
flutter: mdk.INFO: 14:46:06.545: player property: avio.protocol_whitelist = file,rtmp,http,https,tls,rtp,tcp,udp,crypto,httpproxy,data,concatf,concat,subfile
flutter: mdk.INFO: 14:46:06.545: video decoders: "MFT:d3d=11", "D3D11", "CUDA", "FFmpeg"
flutter: mdk.INFO: 14:46:06.545: video decoders: "MFT:d3d=11", "D3D11", "CUDA", "FFmpeg"
flutter: mdk.INFO: 14:46:06.545: default FrameReader00000273BC28C480 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:46:06.545: default00000273BC28C480 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:46:06.545: default FrameReader00000273BC28C480 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:46:06.545: default00000273BC28C480 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:46:06.545: 00000273C1B56740 MediaControl.prepare(0, ...) mem://2696622157888+21881218
flutter: mdk.INFO: 14:46:06.545: default 00000273BC28C480 FrameReader.start(0, ...)
flutter: mdk.INFO: 14:46:06.545: default 00000273BC28C480 FrameReader::update MediaStatus 0=>0X2
flutter: fvp.FINE: 14:46:06.547: 474206618 player2695890485520 onMediaStatus: MediaStatus(noMedia) => MediaStatus(+loading)
flutter: mdk.INFO: 14:46:06.548: default FrameReader00000273BC28C480 state: 0=>0=>1, 0
flutter: mdk.INFO: 14:46:06.548: default FrameReader00000273BC28C480 state: 0=>1=>1, 0
flutter: mdk.INFO: 14:46:06.548: start frame reader thread: 3200
flutter: mdk.INFO: 14:46:06.548: try to load av module: C:\Users\Mohammad\Desktop\aln_download\build\windows\runner\Debug\ffmpeg-6.dll
flutter: mdk.INFO: 14:46:06.548: ffmpeg loaded: C:\Users\Mohammad\Desktop\aln_download\build\windows\runner\Debug\ffmpeg-6.dll
flutter: mdk.INFO: 14:46:06.548: Selected avutil runtime version: 58.24.100 (build: 58.24.100), license: LGPL version 2.1 or later
flutter: mdk.INFO: 14:46:06.548: Selected avutil runtime configuration: --extra-version=avbuild --disable-doc --disable-debug --enable-shared --enable-runtime-cpudetect --enable-libvpl --disable-ptx-compression --enable-mediafoundation --disable-postproc --toolchain=msvc --windres=llvm-windres --extra-windresflags='--target=x86_64-pc-windows-msvc -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.35.32215/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.35.32215/ATLMFC/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Auxiliary/VS/include -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/ucrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/um -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/shared -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/winrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/cppwinrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/NETFXSDK/4.8/include/um' --enable-pic --extra-cflags='-I/d/a/avbuild/avbuild/tools/Vulkan-Headers/include -MD -Zi -FS -guard:cf -I/d/a/avbuild/avbuild/tools/dep/include -D_WIN32_WINNT=0x0600' --extra-ldflags='-NODEFAULTLIB:libcmt -DEBUG -guard:cf -OPT:REF -SUBSYSTEM:CONSOLE' --enable-small --disable-outdevs --disable-filters --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*' --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-filter=scale_cuda --enable-decoder='*sub*,movtext,*web*,aac*,*ac3*,alac*,ape,ass,av1*,ccaption,cfhd,cook,dca,dnxhd,eac3*,exr,truehd,ff*,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe' --enable-demuxer='*sub*,*ac3,*ac,*peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='aac,cfhd,dnxhd,exr,ff*,*yuv*,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,tiff,vp[8-9]*,wrapped_avframe,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis' --enable-muxer='*jpeg,dnxhd,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,og*,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*'
flutter: mdk.INFO: 14:46:06.549: global option: ffmpeg.configuration = --extra-version=avbuild --disable-doc --disable-debug --enable-shared --enable-runtime-cpudetect --enable-libvpl --disable-ptx-compression --enable-mediafoundation --disable-postproc --toolchain=msvc --windres=llvm-windres --extra-windresflags='--target=x86_64-pc-windows-msvc -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.35.32215/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Tools/MSVC/14.35.32215/ATLMFC/include -I/c/Program\ Files/Microsoft\ Visual\ Studio/2022/Enterprise/VC/Auxiliary/VS/include -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/ucrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/um -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/shared -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/winrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/10/include/10.0.22621.0/cppwinrt -I/c/Program\ Files\ \(x86\)/Windows\ Kits/NETFXSDK/4.8/include/um' --enable-pic --extra-cflags='-I/d/a/avbuild/avbuild/tools/Vulkan-Headers/include -MD -Zi -FS -guard:cf -I/d/a/avbuild/avbuild/tools/dep/include -D_WIN32_WINNT=0x0600' --extra-ldflags='-NODEFAULTLIB:libcmt -DEBUG -guard:cf -OPT:REF -SUBSYSTEM:CONSOLE' --enable-small --disable-outdevs --disable-filters --enable-filter='*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*' --disable-muxers --disable-encoders --disable-decoders --disable-demuxers --disable-filter=scale_cuda --enable-decoder='*sub*,movtext,*web*,aac*,*ac3*,alac*,ape,ass,av1*,ccaption,cfhd,cook,dca,dnxhd,eac3*,exr,truehd,ff*,*yuv*,flv,flac,gif,h26[3-4]*,hevc*,hap,mp[1-3]*,prores,*peg*,mlp,mpl2,nellymoser,opus,pcm*,qtrle,*png*,tiff,rawvideo,rv*,sami,srt,ssa,v210*,vc1*,vorbis,vp[6-9]*,wm*,wrapped_avframe' --enable-demuxer='*sub*,*ac3,*ac,*peg*,*web*,au,ape,ass,avi,concat,dnxhd,dts*,*dash*,*flv,gif,hls,h264,hevc,kux,matroska,mov,mp3,mxf,ogg,pcm*,rawvideo,rt*p,spdif,srt,vc1,v210*,wav,*pipe,image2,mlv,nsv,nut' --enable-encoder='aac,cfhd,dnxhd,exr,ff*,*yuv*,gif,h26[3-4]*,av1*,hevc*,mjpeg*,*png,opus,pcm*,prores*,rawvideo,spdif,speedhq,*jpeg,*png,tiff,vp[8-9]*,wrapped_avframe,*nvenc,*qsv,*v4l2m2m,*vaapi,vorbis' --enable-muxer='*jpeg,dnxhd,fifo,flv,gif,hls,h264,hevc,image2,mov,mp4,mpegts,matroska,null,og*,pcm*,rawvideo,spdif,*pipe,*segment,webm,wav,dash,nu*'
flutter: mdk.INFO: 14:46:06.549: global option: ffmpeg.version = 6
flutter: mdk.INFO: 14:46:06.549: av_dict_set00007FFF9ED37D10
flutter: mdk.INFO: 14:46:06.555: Selected avformat runtime version: 60.13.100 (build: 60.13.100), license: LGPL version 2.1 or later
flutter: mdk.INFO: 14:46:06.555: avformat_version00007FFF9ED284E0
flutter: mdk.INFO: 14:46:06.555: mem: Url or protocol is not supported by MediaIO FFmpeg
flutter: mdk.INFO: 14:46:06.555: Try to use default MediaIO
flutter: mdk.INFO: 14:46:06.555: 00000273D0C69FC0 open url: mem://2696622157888+21881218
flutter: mdk.INFO: 14:46:06.556: Error avrt::avio_open2(&avio_, ffmpeg::from_file_uri(in.c_str()), flags, &cb, &dict) @127 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\AVFormatIO.cpp: (0xb0adaf08) Protocol not found
flutter: mdk.WARNING: 14:46:06.556: 00000273D0C69FC0url open error
flutter: mdk.WARNING: 14:46:06.556: Failed to create io for url. io: 00000273D0C69FC0, open: false
flutter: mdk.INFO: 14:46:06.556: default 00000273BC28C480 FrameReader::update MediaStatus 0X2=>0X2
flutter: mdk.INFO: 14:46:06.556: Selected avcodec runtime version: 60.26.100 (build: 60.26.100), license: LGPL version 2.1 or later
flutter: mdk.INFO: 14:46:06.556: av_packet_alloc00007FFF9E843D10
flutter: mdk.INFO: 14:46:06.556: before avformat_open_input. io: 0000000000000000(/pb: 0000000000000000, url: mem://2696622157888+21881218
flutter: mdk.INFO: 14:46:06.556: FFmpeg/Libav runtime git-2023-09-18-0e6fdeb-avbuild
flutter: mdk.INFO: 14:46:06.556: Error avrt::avformat_open_input(&fmtctx_, ffmpeg::from_file_uri(in.c_str()), fmt, &dict) @209 D:\a\mdk-sdk\mdk-sdk\mdk\ffmpeg\plugin\FFmpegPacketIO.cpp: (0xb0adaf08) Protocol not found
flutter: mdk.INFO: 14:46:06.556: 3200default 00000273BC28C480 bool __cdecl mdk::abi::FrameReader::update(enum mdk::abi::MediaStatus) @1059: reset status_mask
flutter: mdk.INFO: 14:46:06.556: default 00000273BC28C480 FrameReader::update MediaStatus 0X2=>0X80000000
flutter: fvp.FINE: 14:46:06.556: 474206618 player2695890485520 onMediaStatus: MediaStatus(+loading) => MediaStatus(+invalid)
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(media open error, invalid or unsupported media, null, null)
#0      MdkVideoPlayerPlatform.create (package:fvp/src/video_player_mdk.dart:219:7)
<asynchronous suspension>
#1      VideoPlayerController.initialize (package:video_player/video_player.dart:438:19)
<asynchronous suspension>
#2      _SeasonFileItemState.playVideo (package:aln_academy/screens/course/widgets/season_file_item.dart:773:5)
<asynchronous suspension>

flutter: mdk.WARNING: 14:46:06.560: reader open error
flutter: mdk.INFO: 14:46:06.560: 3200default 00000273BC28C480 bool __cdecl mdk::abi::FrameReader::update(enum mdk::abi::MediaStatus) @1059: reset status_mask
flutter: mdk.INFO: 14:46:06.560: default 00000273BC28C480 FrameReader::update MediaStatus 0X80000000=>0X80000000
flutter: mdk.INFO: 14:46:06.562: 00000273C1B56740 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 2=>0, current state 0. status: 0X80000000
flutter: mdk.INFO: 14:46:06.562: default FrameReader00000273BC28C480 state: 0=>1=>0, 0
flutter: mdk.INFO: 14:46:06.562: default00000273BC28C480 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:46:06.562: 00000273BC28C480 bool __cdecl mdk::abi::FrameReaderImpl::unload(void), current status 0x80000000, invalid: 0x80000000, loading: 0, loaded: 0, buffering: 0, seeking: 0, prepared: 0, EOF: 0
flutter: mdk.INFO: 14:46:06.562: 00000273BCDDAC60__cdecl mdk::abi::Player::~Player(void)64
flutter: mdk.INFO: 14:46:06.564: setNext from -1 url:
flutter: mdk.INFO: 14:46:06.564: default FrameReader00000273BC28C480 state: 0=>0=>0, 0
flutter: mdk.INFO: 14:46:06.564: default00000273BC28C480 void __cdecl mdk::abi::FrameReader::stop(void), current state: 0
flutter: mdk.INFO: 14:46:06.564: __cdecl mdk::abi::MediaPlayer::Private::~Private(void)
flutter: mdk.INFO: 14:46:06.564: 00000273C1B56740 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 0=>0, current state 0. status: 0X80000000
flutter: mdk.INFO: 14:46:06.565: 00000273C1B5C200 void __cdecl mdk::abi::MediaControlPush::setState(enum mdk::abi::State)@969 requested state 0=>0, current state 0. status: 0
flutter: mdk.INFO: 14:46:06.565: default00000273BC28CD20 deleting FrameReader...
flutter: mdk.INFO: 14:46:06.565: player is destroyed
flutter: mdk.INFO: 14:46:06.565: __cdecl mdk::abi::VideoRenderer::Private::~Private(void) @125
wang-bin commented 1 year ago

flutter: mdk.INFO: 14:45:48.841: 0.22.0 (git cc3b7dc) - Multimedia Development Kit. Copyright (c) 2016-2023 WangBin(QtAV author) Build for: Windows0x0600/10.0.22621 x86_64; MSVC1935; vcruntime14.35.32215.0/msvcp140.dll; 14:25:44 Sep 20 2023

using the old mdk.dll

mohammadinfo commented 1 year ago

I replaced it, but I think when I build, it still uses the old version of the package. I believe you should update to the new version.

mohammadinfo commented 1 year ago

Could you please replace updated mdk.dll in your package?

wang-bin commented 1 year ago

You can delete fvp from cache, then fvp and it's last dependency will be download again. Run flutter pub cache clean or delete fvp cache dir if you know where it is.

mohammadinfo commented 1 year ago

Okay thank you very much indeed.

wang-bin commented 1 year ago

Some videos can not play correctly for me in flutter. But in a c/c++ app, mem: works perfectly. I don't know the reason now.

Another way to play uint8list is using base64 data url, previous versions are supported

final b64uri = 'data:application/octet-stream;base64,${base64Encode(data)}';
_controller = VideoPlayerController.networkUrl(Uri.parse(b64uri));

But seek() seems broken.

mohammadinfo commented 1 year ago

For me it's okay but I'll test it again, thanks bro... You saved my life 😁🙏🏻