Recherche avancée

Médias (91)

Autres articles (60)

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (6882)

  • How to adjust mpeg 2 ts start time with ffmpeg ?

    24 juillet 2019, par Maxim Kornienko

    I’m writing simple HLS (Http Live Streaming) java server to live cast (really live, not on demand) screenshow + voice. I constantly get chunks of image frames and audio samples as input to my service and produce mpeg 2 ts files + m3u8 playlist web page as output. The workflow is the following :

    1. Collect (buffer) source video frames and audio for certain period of time
    2. Convert series of video frames to h.264 encoded video file
    3. Convert audio samples to mp3 audio file
    4. Merge them to .ts file with ffmpeg command

      ffmpeg -i audio.mp3 -i video.mp4 -f mpegts -c:a copy -c:v copy -vprofile main -level:v 4.0 -vbsf h264_mp4toannexb -flags -global_header segment.ts
    5. Publish several .ts files on m3u8 playlist.

    The problem is resulting playlist interrupts after first segment is played. VLC logs following error :

    freetype error: Breaking unbreakable line
    ts error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 4) for PID 17
    ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
    ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 4096
    core error: ES_OUT_SET_(GROUP_)PCR is called too late (pts_delay increased to 1000 ms)
    core error: ES_OUT_RESET_PCR called
    core error: Could not convert timestamp 185529572000
    ts error: libdvbpsi (PSI decoder): TS discontinuity (received 0, expected 4) for PID 17
    ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 0
    ts error: libdvbpsi (PSI decoder): TS duplicate (received 0, expected 1) for PID 4096
    core error: ES_OUT_SET_(GROUP_)PCR is called too late (jitter of 8653 ms ignored)
    core error: Could not get display date for timestamp 0
    core error: Could not convert timestamp 185538017000
    core error: Could not convert timestamp 185538267000
    core error: Could not convert timestamp 185539295977
    ...

    I guess the reason is that start time of segments do not belong to one stream, but it’s impossible to concat and resegment (with ffmepg -f segment) whole stream once new chunk is added. Tried adding #EXT-X-DISCONTINUITY tag to playlist as suggested here but it didn’t help. When I ffprobe them I get :

    Input #0, mpegts, from '26.ts':
    Duration: 00:00:10.02, start: 1.876978, bitrate: 105 kb/s
    Program 1
    Metadata:
     service_name    : Service01
     service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 640x640, 4 fps, 4 tbr, 90k tbn, 8 tbc
    Stream #0:1[0x101]: Audio: mp3 ([3][0][0][0] / 0x0003), 48000 Hz, mono, s16p, 64 kb/s  

    Where start value in line Duration: 00:00:10.02, start: 1.876978, bitrate: 105 kb/s is more or less equal for all segments.
    When I check segments from available proven-to-work playlists (like http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/appleman.m3u8) they all have diffrenet start values for each segment, for example :

    Input #0, mpegts, from 'segm150518140104572-424570.ts':
    Duration: 00:00:06.17, start: 65884.808689, bitrate: 479 kb/s
    Program 257
    Stream #0:0[0x20]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 30 fps, 29.97 tbr, 90k tbn, 60 tbc
    Stream #0:1[0x21]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 115 kb/s
    Stream #0:2[0x22]: Data: timed_id3 (ID3  / 0x20334449)

    and the next after it

    Input #0, mpegts, from 'segm150518140104572-424571.ts':
    Duration: 00:00:06.22, start: 65890.814689, bitrate: 468 kb/s
    Program 257
    Stream #0:0[0x20]: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 320x180 [SAR 1:1 DAR 16:9], 30 fps, 29.97 tbr, 90k tbn, 60 tbc
    Stream #0:1[0x21]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 124 kb/s
    Stream #0:2[0x22]: Data: timed_id3 (ID3  / 0x20334449)

    differ in the way that start time of segm150518140104572-424571.ts is equal to start time + duration of segm150518140104572-424570.ts.

    How could this start value be adjusted with ffmpeg ? Or maybe my whole aproach is wrong ? Unfortunately I couldn’t find on the internet working example of live (not on demand) video service implemented with ffmepg.

  • Stage-Whisper is not working because of missing files

    24 novembre 2023, par Tingtong

    I tried to install this here : https://github.com/Stage-Whisper/Stage-Whisper

    


    Once i put the audio file in it, it is still loading and loading but not transcribing it.

    


    So after that i checked the requirements and packages, if there is something missing and there is. I installed those here :

    


    Node (required for Electron)
Yarn (required for Electron)
Python 3.x (required for backend)
Rust (required for backend)
ffmpeg (required for backend)
Poetry (required for backend)


    


    I installed them with homebrew. There are some errors showing up, once i launch the electron programm with "yarn dev" : ERROR : "could not locate binding files"

    


    I also tried "poetry run python stagewhisper —input /path/to/audio/file.mp3", but got following message. Poetry could not find a pyproject.toml file in /Users/Administrator/Desktop/Stage-Whisper or its parents.

    


    Where do i have to put the file pyproject.toml and what do i have to write in it ?

    


    So i checked with brew info all tools which i need for Stage-Whisper. Screenshots :enter image description here
[enter image description here](https://i.stack.imgur.com/sirb3.png)

    


    What i tried was to update those packages/requirements which where missing, with "sudo port install requirementPackageName ". But after checking with brew info again, those parts are still missing. So does that actually work or do i have to install those missing stuff with homebrew ? I have Mac Mojave 10.14.6 and Homebrew 4.1.18 Version.

    


    I also got an error, while i installed those tools with homebrew :

    


    ERROR : You are using macOS 10.14.
We (and Apple) do not provide support for this old version. It is expected behaviour that some formulae will fail to build in this old version... etc

    


    Thank you for your help guys.

    


    Edit :

    


    


    yarn install v1.22.19 warning ../../../package.json : No license field
[1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4]
🔗 Linking dependencies... warning "@emotion/react >
@emotion/babel-plugin@11.10.2" has unmet peer dependency
"@babel/core@^7.0.0". warning "@emotion/react > @emotion/babel-plugin

    


    


    @babel/plugin-syntax-jsx@7.18.6" has unmet peer dependency "@babel/core@^7.0.0-0". warning " > autoprefixer@10.4.4" has unmet
peer dependency "postcss@^8.1.0". warning " >
eslint-config-airbnb@19.0.4" has unmet peer dependency
"eslint-plugin-react-hooks@^4.3.0".
[----------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/890^[4/4] 🔨 Building fresh packages... [1/7] ⠁ better-sqlite3
[-/7] ⠁ waiting... [3/7] ⠁ sqlite3 [4/7] ⠁ esbuild error
/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/better-sqlite3 :
Command failed. Exit code : 1 Command : prebuild-install || npm run
build-release Arguments : Directory :
/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/better-sqlite3
Output : prebuild-install warn install No prebuilt binaries found
(target=20.9.0 runtime=node arch=x64 libc= platform=darwin)

    


    


    


    better-sqlite3@7.6.2 build-release
node-gyp rebuild —release

    


    


    gyp info it worked if it ends with ok gyp info using node-gyp@9.3.0
gyp info using node@20.9.0 | darwin | x64 gyp info find Python using
Python version 3.9.14 found at "/usr/local/bin/python3" gyp info spawn
/usr/local/bin/python3 gyp info spawn args [ gyp info spawn args
    
'/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/electron-rebuild/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp
info spawn args 'make', gyp info spawn args '-I', gyp info spawn
args
    
'/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/better-sqlite3/build/config.gypi',
gyp info spawn args '-I', gyp info spawn args
    
'/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/electron-rebuild/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I', gyp info spawn args
    
'/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args
'-Dvisibility=default', gyp info spawn args
    
'-Dnode_root_dir=/Users/administrator/Library/Caches/node-gyp/20.9.0',
gyp info spawn args
    
'-Dnode_gyp_dir=/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/electron-rebuild/node_modules/node-gyp',
gyp info spawn args
    &#xA;'-Dnode_lib_file=/Users/administrator/Library/Caches/node-gyp/20.9.0/<(target_arch)/node.lib',&#xA;gyp info spawn args
    &#xA;'-Dmodule_root_dir=/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/better-sqlite3',&#xA;gyp info spawn args '-Dnode_engine=v8', gyp info spawn args
    &#xA;'—depth=.', gyp info spawn args '—no-parallel', gyp info spawn&#xA;args '—generator-output', gyp info spawn args 'build', gyp info&#xA;spawn args '-Goutput_dir=.' gyp info spawn args ] gyp info spawn&#xA;make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
    &#xA;TOUCH ba23eeee118cd63e16015df367567cb043fed872.intermediate ACTION&#xA;deps_sqlite3_gyp_locate_sqlite3_target_copy_builtin_sqlite3&#xA;ba23eeee118cd63e16015df367567cb043fed872.intermediate TOUCH&#xA;Release/obj.target/deps/locate_sqlite3.stamp CC(target)&#xA;Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o LIBTOOL-STATIC&#xA;Release/sqlite3.a CXX(target)&#xA;Release/obj.target/better_sqlite3/src/better_sqlite3.o In file&#xA;included from ../src/better_sqlite3.cpp:4 : In file included from&#xA;./src/better_sqlite3.lzz:11 : In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/node.h:73 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8.h:24 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-array-buffer.h:12 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-local-handle.h:12 :&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:465:30 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;SHARED_EXTERNAL_POINTER_TAGS(CHECK_SHARED_EXTERNAL_POINTER_TAGS)&#xA;^ /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:465:30 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:465:30 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:465:30 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:465:30 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;PER_ISOLATE_EXTERNAL_POINTER_TAGS(CHECK_NON_SHARED_EXTERNAL_POINTER_TAGS)&#xA;^ /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:466:35 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:693:61 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;static_assert(kJSObjectType + 1 == kFirstJSApiObjectType) ;&#xA;^&#xA;, "" /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:694:55 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;static_assert(kJSObjectType < kLastJSApiObjectType) ;&#xA;^&#xA;, "" /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-internal.h:695:63 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;static_assert(kFirstJSApiObjectType < kLastJSApiObjectType) ;&#xA;^&#xA;, "" In file included from ../src/better_sqlite3.cpp:4 : In file included from&#xA;./src/better_sqlite3.lzz:11 : In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/node.h:73 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8.h:24 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-array-buffer.h:13 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-object.h:9 :&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-maybe.h:106:45 :&#xA;error : no template named 'is_lvalue_reference_v' in namespace 'std' ;&#xA;did you mean 'is_lvalue_reference' ? template >&#xA; ^ &#xA;is_lvalue_reference /Library/Developer/CommandLineTools/usr/include/c++/v1/type_traits:780:50 :&#xA;note : 'is_lvalue_reference' declared here template struct&#xA;_LIBCPP_TEMPLATE_VIS is_lvalue_reference : public false_type {} ;&#xA;^ In file included from ../src/better_sqlite3.cpp:4 : In file included from&#xA;./src/better_sqlite3.lzz:11 : In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/node.h:73 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8.h:24 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-array-buffer.h:13 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-object.h:9 :&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-maybe.h:106:69 :&#xA;error : expected '(' for function-style cast or type construction
    &#xA;template
    >&#xA; ^ /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-maybe.h:123:43 :&#xA;error : no template named 'is_lvalue_reference_v' in namespace 'std' ;&#xA;did you mean 'is_lvalue_reference' ? template * = nullptr>&#xA; ^ &#xA;is_lvalue_reference /Library/Developer/CommandLineTools/usr/include/c++/v1/type_traits:780:50 :&#xA;note : 'is_lvalue_reference' declared here template struct&#xA;_LIBCPP_TEMPLATE_VIS is_lvalue_reference : public false_type {} ;&#xA;^ In file included from ../src/better_sqlite3.cpp:4 : In file included from&#xA;./src/better_sqlite3.lzz:11 : In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/node.h:73 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8.h:24 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-array-buffer.h:13 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-object.h:9 :&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-maybe.h:123:67 :&#xA;error : expected '(' for function-style cast or type construction&#xA;template * =&#xA;nullptr>&#xA; ^ In file included from ../src/better_sqlite3.cpp:4 : In file included from&#xA;./src/better_sqlite3.lzz:11 : In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/node.h:73 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8.h:33 :&#xA;In file included from&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-function.h:11 :&#xA;/Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-function-callback.h:151:66 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;kReturnValueDefaultValueIndex - kReturnValueIndex) ;&#xA;^&#xA;, "" /Users/administrator/Library/Caches/node-gyp/20.9.0/include/node/v8-function-callback.h:153:50 :&#xA;warning : static_assert with no message is a C++17 extension&#xA;[-Wc++17-extensions]&#xA;kIsolateIndex - kReturnValueIndex) ;&#xA;^&#xA;, "" ./src/util/macros.lzz:157:21 : error : no member named&#xA;'AccessorSignature' in namespace 'v8'&#xA;v8::AccessorSignature::New(isolate, recv)&#xA; ^ ./src/util/binder.lzz:37:51 : error : no member named 'CreationContext' in 'v8::Object'&#xA;v8::Local ctx = obj->CreationContext() ;&#xA; ^ 22 warnings and 6 errors generated. make : ***&#xA;[Release/obj.target/better_sqlite3/src/better_sqlite3.o] Error 1 rm&#xA;ba23eeee118cd63e16015df367567cb043fed872.intermediate gyp ERR ! build&#xA;error gyp ERR ! stack Error : make failed with exit code : 2 gyp ERR !&#xA;stack at ChildProcess.onExit&#xA;(/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/electron-rebuild/node_modules/node-gyp/lib/build.js:203:23)&#xA;gyp ERR ! stack at ChildProcess.emit (node:events:514:28) gyp ERR !&#xA;stack at ChildProcess._handle.onexit&#xA;(node:internal/child_process:294:12) gyp ERR ! System Darwin 18.7.0 gyp&#xA;ERR ! command "/usr/local/bin/node"&#xA;"/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/.bin/node-gyp"&#xA;"rebuild" "—release" gyp ERR ! cwd&#xA;/Users/administrator/Desktop/Stage-Whisper/electron/node_modules/better-sqlite3

    &#xA;

    &#xA;

    Same goes for the the "poetry install" command in the backend folder :

    &#xA;

    8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/build/onig_sys-3a9a2f947b5ad744/outwarning: variable does not need to be mutable --> tokenizers-lib/src/models/unigram/model.rs:265:21 | 265 |                 let mut target_node = &amp;mut best_path_ends_at[key_pos]; |                     ----^^^^^^^^^^^ |                     | |                     help: remove thismut| = note:#[warn(unused_mut)]` on by default

    &#xA;

    warning : variable does not need to be mutable&#xA;—> tokenizers-lib/src/models/unigram/model.rs:282:21&#xA;|&#xA;282 | let mut target_node = &mut best_path_ends_at[starts_at + mblen] ;&#xA;| ----^^^^^^^^^^^&#xA;| |&#xA;| help : remove this mut

    &#xA;

    warning : variable does not need to be mutable&#xA;—> tokenizers-lib/src/pre_tokenizers/byte_level.rs:200:59&#xA;|&#xA;200 | encoding.process_tokens_with_offsets_mut(|(i, (token, mut offsets))| &#xA;| ----^^^^^^^&#xA;| |&#xA;| help : remove this mut

    &#xA;

    error : casting &amp;T to &amp;mut T is undefined behavior, even if the reference is unused, consider instead using an UnsafeCell&#xA;—> tokenizers-lib/src/models/bpe/trainer.rs:526:47&#xA;|&#xA;522 | let w = &words[*i] as *const _ as *mut _ ;&#xA;| -------------------------------- casting happend here&#xA;...&#xA;526 | let word : &mut Word = &mut (*w) ;&#xA;| ^^^^^^^^^&#xA;|&#xA;= note : #[deny(invalid_reference_casting)] on by default

    &#xA;

    warning : tokenizers (lib) generated 3 warnings&#xA;error : could not compile tokenizers (lib) due to previous error ; 3 warnings emitted

    &#xA;

    Caused by :&#xA;process didn't exit successfully : /Users/administrator/.rustup/toolchains/stable-x86_64-apple-darwin/bin/rustc --crate-name tokenizers --edition=2018 tokenizers-lib/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg &#x27;feature="cached-path"&#x27; --cfg &#x27;feature="clap"&#x27; --cfg &#x27;feature="cli"&#x27; --cfg &#x27;feature="default"&#x27; --cfg &#x27;feature="http"&#x27; --cfg &#x27;feature="indicatif"&#x27; --cfg &#x27;feature="progressbar"&#x27; --cfg &#x27;feature="reqwest"&#x27; -C metadata=cb36f9861d265e60 -C extra-filename=-cb36f9861d265e60 --out-dir /private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps -L dependency=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps --extern aho_corasick=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libaho_corasick-021885281f13d108.rmeta --extern cached_path=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libcached_path-767095c4d4a77107.rmeta --extern clap=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libclap-c92d2593d8a75e62.rmeta --extern derive_builder=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libderive_builder-833217c2af636976.dylib --extern dirs=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libdirs-f12e99ecd3a76eae.rmeta --extern esaxx_rs=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libesaxx_rs-b694f04df571686b.rmeta --extern indicatif=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libindicatif-39491a3282a24810.rmeta --extern itertools=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libitertools-b322e49e83853c17.rmeta --extern lazy_static=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/liblazy_static-28a96417d88df3c9.rmeta --extern log=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/liblog-937f94f366843d8a.rmeta --extern macro_rules_attribute=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libmacro_rules_attribute-d4d77bee9330e675.rmeta --extern onig=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libonig-7f9dab4334743bdf.rmeta --extern paste=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libpaste-a36a4a0dbc2ac63f.dylib --extern rand=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/librand-4b1adc86e35ea892.rmeta --extern rayon=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/librayon-d134e48f83d52e6e.rmeta --extern rayon_cond=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/librayon_cond-5715a923c66c54a9.rmeta --extern regex=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libregex-a5c54f2d0034ab98.rmeta --extern regex_syntax=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libregex_syntax-58c405f62323b6ed.rmeta --extern reqwest=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libreqwest-1551c89d20e17f58.rmeta --extern serde=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libserde-f4748cc953dd1338.rmeta --extern serde_json=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libserde_json-5fba404e8440399e.rmeta --extern spm_precompiled=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libspm_precompiled-6bd24072bd3c9d31.rmeta --extern thiserror=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libthiserror-bcbb2769006ee534.rmeta --extern unicode_normalization_alignments=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libunicode_normalization_alignments-658520cf6a5461dc.rmeta --extern unicode_segmentation=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libunicode_segmentation-fffd829ab6256bb0.rmeta --extern unicode_categories=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/deps/libunicode_categories-e3815c3d18c1086b.rmeta -L native=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/build/bzip2-sys-d2cb72d65b178690/out/lib -L native=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/build/zstd-sys-ddff0154a55a136c/out -L native=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/build/esaxx-rs-69d9e34a40d41449/out -L native=/private/var/folders/zc/c2qvlcjd5cgcg5l84484t8vh0000gt/T/tmp2yohvwu_/tokenizers-0.12.1/target/release/build/onig_sys-3a9a2f947b5ad744/out (exit status : 1)&#xA;error : cargo rustc --lib --message-format=json-render-diagnostics --manifest-path Cargo.toml --release -v --features pyo3/extension-module --crate-type cdylib -- -C &#x27;link-args=-undefined dynamic_lookup -Wl,-install_name,@rpath/tokenizers.cpython-311-darwin.so&#x27; failed with code 101

    &#xA;

    at /usr/local/lib/python3.11/site-packages/poetry/installation/chef.py:166 in _prepare&#xA;162│&#xA;163│ error = ChefBuildError("\n\n".join(message_parts))&#xA;164│&#xA;165│ if error is not None :&#xA;→ 166│ raise error from None&#xA;167│&#xA;168│ return path&#xA;169│&#xA;170│ def _prepare_sdist(self, archive : Path, destination : Path | None = None) -> Path :

    &#xA;

    Note : This error originates from the build backend, and is likely not a problem with poetry but with tokenizers (0.12.1) not supporting PEP 517 builds. You can verify this by running 'pip wheel —no-cache-dir —use-pep517 "tokenizers (==0.12.1)"'.

    &#xA;

    UPDATE (SOLVED) :

    &#xA;

      &#xA;
    • i found a solution and this worked for me :
    • &#xA;

    &#xA;

    "I had the same problem and nothing mentioned here worked for me. Here is what worked for me :

    &#xA;

    **("Didnt do this Part")"Require all dependencies you need in the main.js file that is run by electron."**    &#xA;

    &#xA;

    What i did was :&#xA;Run npm i -D electron-rebuild to add the electron-rebuild package&#xA;Remove the node-modules folder, as well as the packages-lock.json file.&#xA;Run npm i to install all modules.&#xA;Run ./node_modules/.bin/electron-rebuild (.\node_modules.bin\electron-rebuild.cmd for Windows) to rebuild everything

    &#xA;

    It is very important to run ./node_modules/.bin/electron-rebuild directly after npm i otherwise it did not work on my mac."

    &#xA;

    But now i get following Error, when i upload and transcribe the file :

    &#xA;

    > [ELECTRON] NewEntry: Creating new entry with UUID: XY...&#xA;[ELECTRON] NewEntry: Copying audio file to store...&#xA;[ELECTRON] NewEntry: Audio file copied to store.&#xA;[ELECTRON] NewEntry: Entry added to database!&#xA;[ELECTRON] RunWhisper: Running model with args [&#xA;[ELECTRON]   &#x27;--verbose&#x27;,&#xA;[ELECTRON]   &#x27;true&#x27;,&#xA;[ELECTRON]   &#x27;--output_dir&#x27;,&#xA;[ELECTRON]   &#x27;/Users/administrator/Library/Application Support/stagewhisper/store/whisper/2a07203b-ad88-438c-babf-b600cb76aa1d&#x27;,&#xA;[ELECTRON]   &#x27;--task&#x27;,&#xA;[ELECTRON]   &#x27;translate&#x27;,&#xA;[ELECTRON]   &#x27;--model&#x27;,&#xA;[ELECTRON]   &#x27;base&#x27;,&#xA;[ELECTRON]   &#x27;--device&#x27;,&#xA;[ELECTRON]   &#x27;cpu&#x27;,&#xA;[ELECTRON]   &#x27;--input&#x27;,&#xA;[ELECTRON]   &#x27;/Users/administrator/Library/Application Support/stagewhisper/store/audio/harvard.mp3&#x27;&#xA;[ELECTRON] ]&#xA;[ELECTRON] RunWhisper: Child process closed with code 1&#xA;[ELECTRON] RunWhisper: Error running whisper script!&#xA;[ELECTRON] Error occurred in handler for &#x27;run-whisper&#x27;: Error: Error running whisper script!&#xA;[ELECTRON]     at ChildProcess.<anonymous> (/Users/administrator/Desktop/Stage-Whisper/electron/main/handlers/runWhisper/runWhisper.js:234:31)&#xA;[ELECTRON]     at ChildProcess.emit (node:events:390:28)&#xA;[ELECTRON]     at maybeClose (node:internal/child_process:1064:16)&#xA;[ELECTRON]     at Socket.<anonymous> (node:internal/child_process:450:11)&#xA;[ELECTRON]     at Socket.emit (node:events:390:28)&#xA;[ELECTRON]     at Pipe.<anonymous> (node:net:687:12)&#xA;&#xA; &#xA;</anonymous></anonymous></anonymous>

    &#xA;

  • avutil/imgutils : Add wrapper for av_image_copy() to avoid casts

    6 septembre 2023, par Andreas Rheinhardt
    avutil/imgutils : Add wrapper for av_image_copy() to avoid casts
    

    av_image_copy() accepts const uint8_t* const * as source ;
    lots of user have uint8_t* const * and therefore either
    cast (the majority) or copy the array of pointers.

    This commit changes this by adding a static inline wrapper
    for av_image_copy() that casts between the two types
    so that we do not need to add casts everywhere else.

    Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>

    • [DH] doc/APIchanges
    • [DH] doc/examples/demux_decode.c
    • [DH] libavcodec/amfenc.c
    • [DH] libavcodec/libkvazaar.c
    • [DH] libavcodec/libopenh264dec.c
    • [DH] libavcodec/libvpxdec.c
    • [DH] libavcodec/mediacodecenc.c
    • [DH] libavcodec/mmaldec.c
    • [DH] libavcodec/nuv.c
    • [DH] libavcodec/nvenc.c
    • [DH] libavcodec/omx.c
    • [DH] libavcodec/v210dec.c
    • [DH] libavdevice/xv.c
    • [DH] libavfilter/lavfutils.c
    • [DH] libavfilter/vf_framepack.c
    • [DH] libavfilter/vf_pullup.c
    • [DH] libavfilter/yadif_common.c
    • [DH] libavutil/frame.c
    • [DH] libavutil/hwcontext_d3d11va.c
    • [DH] libavutil/hwcontext_dxva2.c
    • [DH] libavutil/imgutils.h
    • [DH] libavutil/version.h