Ecosyste.ms: Repos
An open API service providing repository metadata for many open source software ecosystems.
GitHub topics: playback
C0nw0nk/PlexCleaner
PlexCleaner Utility to optimize media files for Direct Play in Plex, Emby, Jellyfin it will scan through the media server directory and automatically convert files to mkv for direct playback the reason this is a good idea is it saves your NAS or plex host effort having to transcode media when all media is direct play ready
Language: Batchfile - Size: 70.3 KB - Last synced: about 18 hours ago - Pushed: about 19 hours ago - Stars: 3 - Forks: 0
blmage/duolingo-tts-controls
A small browser extension providing playback controls for some of the challenges on Duolingo.
Language: JavaScript - Size: 1.69 MB - Last synced: about 21 hours ago - Pushed: about 22 hours ago - Stars: 19 - Forks: 4
shaka-project/shaka-player
JavaScript player library / DASH & HLS client / MSE-EME player
Language: JavaScript - Size: 179 MB - Last synced: about 24 hours ago - Pushed: about 24 hours ago - Stars: 6,876 - Forks: 1,305
mackron/miniaudio
Audio playback and capture library written in C, in a single source file.
Language: C - Size: 153 MB - Last synced: about 18 hours ago - Pushed: 1 day ago - Stars: 3,671 - Forks: 312
dolbyio-samples/rts-app-ios-viewer
An iOS Real Time Streaming monitor example for dolby.io
Language: Swift - Size: 16.7 MB - Last synced: 1 day ago - Pushed: 1 day ago - Stars: 11 - Forks: 2
bbc/bigscreen-player
Simplified media playback for bigscreen devices
Language: JavaScript - Size: 10.2 MB - Last synced: about 22 hours ago - Pushed: about 23 hours ago - Stars: 77 - Forks: 14
video-dev/hls.js
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Language: TypeScript - Size: 223 MB - Last synced: 3 days ago - Pushed: 4 days ago - Stars: 14,236 - Forks: 2,526
SRGSSR/pillarbox-apple
A next-generation reactive media playback ecosystem for Apple platforms.
Language: Swift - Size: 31.2 MB - Last synced: about 23 hours ago - Pushed: 1 day ago - Stars: 43 - Forks: 6
Web-SyncPlay/Web-SyncPlay
Watch online media like YouTube, Vimeo, Soundcloud or video/audio files in sync.
Language: TypeScript - Size: 2.18 MB - Last synced: 4 days ago - Pushed: 4 days ago - Stars: 36 - Forks: 7
RenderHeads/UnityPlugin-AVProVideo
AVPro Video is a multi-platform Unity plugin for advanced video playback
Size: 22.5 KB - Last synced: 5 days ago - Pushed: 5 days ago - Stars: 220 - Forks: 26
shaka-project/shaka-player-embedded
Shaka Player in a C++ Framework
Language: C++ - Size: 9.54 MB - Last synced: 1 day ago - Pushed: 3 months ago - Stars: 239 - Forks: 62
willnguyen1312/headlessplayback
A simple yet complete playback library designed for UI frameworks or even without
Language: TypeScript - Size: 2.36 MB - Last synced: 5 days ago - Pushed: 6 days ago - Stars: 5 - Forks: 0
FMassin/scpbd
SeisComP playback in a docker
Language: Dockerfile - Size: 2.84 MB - Last synced: 7 days ago - Pushed: 7 days ago - Stars: 2 - Forks: 0
ijpiantanida/talkback
A simple HTTP proxy that records and playbacks requests
Language: TypeScript - Size: 1.14 MB - Last synced: 7 days ago - Pushed: 7 days ago - Stars: 268 - Forks: 40
videolan/vlc-unity
LibVLC plugin for Unity to integrate multimedia playback inside your Unity apps and games
Language: C - Size: 57.3 MB - Last synced: 8 days ago - Pushed: 8 days ago - Stars: 125 - Forks: 32
wang-bin/mdk-sdk
multimedia development kit. download:
Language: Shell - Size: 241 KB - Last synced: 8 days ago - Pushed: 9 days ago - Stars: 235 - Forks: 29
federicadomani/AutoClicker2-Record-Play-The-Lists-Of-Mouse-Clicks
AutoClicker2 Record Play The Lists Of Mouse Clicks is open source mouse auto-clicker to record, edit, import, and playback the whole sequences of mouse clicks. AutoClicker2 is an advanced fork and modern 2022 replacer of semi-defunct or ads-viruses-abused www.opautoclicker.com, www.autoclicker.io, www.autoclicker.org, www.macrorecorder.com, www.remouse.com, www.sourceforge.net/projects/orphamielautoclicker/, etc.
Language: C# - Size: 12.2 MB - Last synced: 8 days ago - Pushed: 8 days ago - Stars: 126 - Forks: 31
SeleniumHQ/selenium-ide
Open Source record and playback test automation for the web.
Language: TypeScript - Size: 30.8 MB - Last synced: 14 days ago - Pushed: 16 days ago - Stars: 2,671 - Forks: 725
goldfire/howler.js
Javascript audio library for the modern web.
Language: JavaScript - Size: 30.7 MB - Last synced: 10 days ago - Pushed: 19 days ago - Stars: 22,962 - Forks: 2,197
AcademySoftwareFoundation/OpenRV
Open source version of RV, the Sci-Tech award-winning media review and playback software.
Language: C++ - Size: 17.1 MB - Last synced: 12 days ago - Pushed: 12 days ago - Stars: 532 - Forks: 119
naomiaro/waveform-playlist
Multitrack Web Audio editor and player with canvas waveform preview. Set cues, fades and shift multiple tracks in time. Record audio tracks or provide audio annotations. Export your mix to AudioBuffer or WAV! Add effects from Tone.js. Project inspired by Audacity.
Language: JavaScript - Size: 37.4 MB - Last synced: 10 days ago - Pushed: about 2 months ago - Stars: 1,419 - Forks: 282
NovusTheory/xosms
Cross platform native media service library for node & electron. Currently supporting Windows & Linux
Language: Rust - Size: 1.08 MB - Last synced: 9 days ago - Pushed: 2 months ago - Stars: 7 - Forks: 2
houseofcat/WinKeyRecorder
A time sensitive Windows Key press recording and playback application.
Language: C# - Size: 21.5 KB - Last synced: 14 days ago - Pushed: about 4 years ago - Stars: 5 - Forks: 1
CrossGeeks/WowzaClientPlugin
Wowza Client Plugin for Xamarin iOS and Android
Language: C# - Size: 9.35 MB - Last synced: 14 days ago - Pushed: about 5 years ago - Stars: 11 - Forks: 5
clappr/dash-shaka-playback
A dash playback (based on shaka-player) for :clapper: Clappr
Language: JavaScript - Size: 5.52 MB - Last synced: 14 days ago - Pushed: 15 days ago - Stars: 72 - Forks: 27
darbyjohnston/DJV
Professional media review software for VFX, animation, and film production
Language: C++ - Size: 221 MB - Last synced: 9 days ago - Pushed: about 1 year ago - Stars: 646 - Forks: 59
HISPlayer/UnityiOS-SDK
The most advanced UnityEngine Video Player with DRM protection for iOS. Bring premium video streaming in HLS formats into Unity games and metaverses on iOS.
Language: CSS - Size: 2.41 MB - Last synced: 15 days ago - Pushed: 15 days ago - Stars: 0 - Forks: 1
jessuni/shikwasa
An audio player born for podcast
Language: JavaScript - Size: 14 MB - Last synced: 12 days ago - Pushed: about 1 month ago - Stars: 436 - Forks: 28
ManagedBass/ManagedBass
.Net Wrapper for 'Bass' Audio Library
Language: C# - Size: 1.46 MB - Last synced: 13 days ago - Pushed: 29 days ago - Stars: 224 - Forks: 38
Jisuanke/CodeMirror-Record
A project for recording and playing coding activities in @CodeMirror editor.
Language: JavaScript - Size: 1.03 MB - Last synced: 15 days ago - Pushed: 15 days ago - Stars: 22 - Forks: 10
alexmercerind/dart_vlc
Flutter bindings to libVLC.
Language: C++ - Size: 67.5 MB - Last synced: 13 days ago - Pushed: 6 months ago - Stars: 486 - Forks: 125
jonasrmichel/rudiments
A drum machine written in Rust
Language: Rust - Size: 832 KB - Last synced: 14 days ago - Pushed: over 2 years ago - Stars: 146 - Forks: 8
Baseflow/Chameleon
Chameleon is a flexible media player build with Xamarin.Forms
Language: C# - Size: 12.7 MB - Last synced: 2 days ago - Pushed: about 1 year ago - Stars: 152 - Forks: 29
dolbyio-samples/rts-app-android-viewer
Android Example app Real-time Streaming Monitor for Dolby.io
Language: Kotlin - Size: 118 MB - Last synced: 28 days ago - Pushed: 28 days ago - Stars: 2 - Forks: 3
lewhunt/react-video-looper
A video player component for looping inner sections of video. Packaged as an npm library and cdn script.
Language: JavaScript - Size: 29.8 MB - Last synced: 11 days ago - Pushed: 22 days ago - Stars: 25 - Forks: 5
Scribery/tlog
Terminal I/O logger
Language: C - Size: 1.39 MB - Last synced: 22 days ago - Pushed: 3 months ago - Stars: 295 - Forks: 52
EnixCoda/TeslaPlayback
🚗 Online playback tool for Tesla Cam
Language: TypeScript - Size: 9.55 MB - Last synced: 24 days ago - Pushed: 24 days ago - Stars: 1 - Forks: 1
ardaku/wavy
Asynchronous cross-platform real-time audio recording & playback.
Language: Rust - Size: 444 KB - Last synced: 23 days ago - Pushed: about 1 year ago - Stars: 75 - Forks: 4
zeozeozeo/kittyaudio
A Rust audio playback library focusing on simplicity.
Language: Rust - Size: 1.96 MB - Last synced: 8 days ago - Pushed: 3 months ago - Stars: 10 - Forks: 1
seborama/govcr
HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing
Language: Go - Size: 474 KB - Last synced: 10 days ago - Pushed: about 1 month ago - Stars: 163 - Forks: 14
cardinalby/vlc-sync-play
Synchronise multiple VLC instances playback
Language: Go - Size: 2.39 MB - Last synced: 18 days ago - Pushed: about 2 months ago - Stars: 4 - Forks: 0
OxygenCobalt/Auxio
A simple, rational music player for android
Language: Kotlin - Size: 51.3 MB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 1,714 - Forks: 111
dolbyio-samples/stream-app-flutter-publisher
With the Dolby.io Flutter streaming SDK you can build for Android, iOS, Web, and Desktop from a single code base.
Language: C++ - Size: 328 KB - Last synced: 28 days ago - Pushed: 12 months ago - Stars: 7 - Forks: 4
dolbyio-samples/stream-sdk-web-getting-started
Getting Started with Dolby.io Real-time Streaming Web SDK
Language: HTML - Size: 20.5 KB - Last synced: 28 days ago - Pushed: 7 months ago - Stars: 2 - Forks: 0
PieceMeta/node-metakit
:sparkles: A toolkit to handle storage, playback and distribution of structured alphanumerical data. :dizzy:
Language: JavaScript - Size: 6.21 MB - Last synced: 28 days ago - Pushed: almost 4 years ago - Stars: 2 - Forks: 0
melanchall/drywetmidi
.NET library to read, write, process MIDI files and to work with MIDI devices
Language: C# - Size: 45.6 MB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 498 - Forks: 72
tgarc/pastream
Some utilities that build on python-sounddevice
Language: Python - Size: 329 KB - Last synced: 30 days ago - Pushed: about 1 month ago - Stars: 5 - Forks: 0
reindernijhoff/dittytoy-package
Compile and play code (ditties) from Dittytoy.net, an online platform that allows you to create generative music using a minimalistic javascript API.
Language: JavaScript - Size: 393 KB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 1 - Forks: 0
Napster/napster.js
Napster Javascript SDK
Language: JavaScript - Size: 1.2 MB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 56 - Forks: 44
p2or/blender-loom
image sequence rendering, encoding and playback
Language: Python - Size: 591 KB - Last synced: 28 days ago - Pushed: about 2 months ago - Stars: 149 - Forks: 9
jellyfin/jellyfin-kodi
Jellyfin Plugin for Kodi
Language: Python - Size: 8.16 MB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 759 - Forks: 103
matvp91/shaka-player-react
A simple React component wrapper for shaka-player
Language: JavaScript - Size: 667 KB - Last synced: 27 days ago - Pushed: about 1 year ago - Stars: 104 - Forks: 34
94kai/PlaybackOP
android操作录制、操作回放
Language: Java - Size: 17.7 MB - Last synced: 27 days ago - Pushed: over 5 years ago - Stars: 26 - Forks: 3
alexdelorenzo/cast_control
📺 Control Chromecasts from Linux and D-Bus
Language: Python - Size: 3.19 MB - Last synced: 22 days ago - Pushed: 4 months ago - Stars: 479 - Forks: 9
coffe1891/videojs-flvh265
This is a Video.js' Tech for FLV + H265
Language: JavaScript - Size: 4.71 MB - Last synced: 13 days ago - Pushed: over 3 years ago - Stars: 67 - Forks: 16
BattlesnakeOfficial/board
Battlesnake Game Board and Playback Control
Language: Svelte - Size: 4.31 MB - Last synced: about 1 month ago - Pushed: about 1 month ago - Stars: 22 - Forks: 14
hansalemaos/geteventplayback
A pure Python module for recording and processing low-level Android input events (Mouse/Keyboard/Touchpad) - no dependencies
Language: Python - Size: 9.77 KB - Last synced: 29 days ago - Pushed: 5 months ago - Stars: 5 - Forks: 0
processing/processing-video
GStreamer-based video library for Processing
Language: Java - Size: 46 MB - Last synced: about 1 month ago - Pushed: about 2 months ago - Stars: 272 - Forks: 130
Straas/Straas-android-sdk-sample
Straas Android SDK samples and documentation
Language: Java - Size: 7.34 MB - Last synced: about 2 months ago - Pushed: almost 2 years ago - Stars: 12 - Forks: 9
eneim/kohii
Android Video Playback made easy.
Language: Kotlin - Size: 39.5 MB - Last synced: 13 days ago - Pushed: 9 months ago - Stars: 368 - Forks: 49
onlxltd/ctrl-for-ipad
An all-in-one interface for building and running custom control setups. Supporting MIDI, OSC, HTTP, TCP, UDP, Audio, Video and sACN with the additional support for dedicated interface modules.
Size: 282 KB - Last synced: about 2 months ago - Pushed: 5 months ago - Stars: 6 - Forks: 0
ikatyang/jest-playback
Record and playback HTTP requests from your Jest tests
Language: TypeScript - Size: 731 KB - Last synced: about 1 month ago - Pushed: 4 months ago - Stars: 52 - Forks: 6
prprprus/softest
Recording Browser Interactions And Generating Test Scripts.
Language: JavaScript - Size: 136 MB - Last synced: 4 days ago - Pushed: 6 months ago - Stars: 226 - Forks: 24
TommyLemon/UIGO
📱 零代码快准稳 UI 智能录制回放平台 🚀 像素级自动兼容任意宽高比分辨率屏幕,毫秒级自动精准等待网络请求,录制回放快、准、稳!📱 Coding-free, fast, accurate and stable UI replayer 🚀 Automatically pixel level compatible with any screens and millisecond level waiting for network requests.
Language: Java - Size: 9.67 MB - Last synced: about 2 months ago - Pushed: about 2 months ago - Stars: 27 - Forks: 1
wabarc/playback
Playback webpages from Wayback Machine
Language: Go - Size: 85 KB - Last synced: 7 days ago - Pushed: 26 days ago - Stars: 6 - Forks: 1
joan-domingo/Podcasts-RAC1-Android
Android app to listen to podcasts from www.rac1.cat and www.catradio.cat
Language: Kotlin - Size: 4.75 MB - Last synced: about 2 months ago - Pushed: over 3 years ago - Stars: 8 - Forks: 6
o770/mpvclip-mpvival-mpvloop 📦
Run MPV with options for loops and playback start and end times set according to a pattern or intervals of the total duration of a file.
Language: Shell - Size: 99.6 KB - Last synced: 21 days ago - Pushed: 3 months ago - Stars: 1 - Forks: 0
adrienjoly/playemjs
▶️ Streams a list of tracks from Youtube, Soundcloud, Vimeo...
Language: JavaScript - Size: 3.09 MB - Last synced: 15 days ago - Pushed: over 1 year ago - Stars: 92 - Forks: 18
dtschust/redux-bug-reporter
:bug: A bug reporter and bug playback tool for redux. :bug:
Language: JavaScript - Size: 1.33 MB - Last synced: 23 days ago - Pushed: over 6 years ago - Stars: 684 - Forks: 20
MarcTheSpark/scamp
a Suite in Python for Computer-Assisted Music [MIRROR of https://git.sr.ht/~marcevanstein/scamp]
Language: Python - Size: 12.1 MB - Last synced: 2 months ago - Pushed: 2 months ago - Stars: 111 - Forks: 11
rsp4jack/libmfmidi
A powerful C++20 MIDI library.
Language: C++ - Size: 704 KB - Last synced: 2 months ago - Pushed: 2 months ago - Stars: 1 - Forks: 0
christf/snapcastc
C implementation of snapcast focussing on audio quality and ease of maintenance.
Language: C - Size: 425 KB - Last synced: 17 days ago - Pushed: 18 days ago - Stars: 39 - Forks: 5
sharkykh/tppm
▶ Manage playback progress items stored on Trakt.tv
Language: Vue - Size: 1.2 MB - Last synced: about 2 months ago - Pushed: about 2 months ago - Stars: 41 - Forks: 1
Timendus/soundboard
A very simple drag and drop soundboard app with MIDI support
Size: 3.87 MB - Last synced: 3 months ago - Pushed: 3 months ago - Stars: 25 - Forks: 1
termbacktime/termbacktime
Terminal recording and playback.
Language: Go - Size: 410 KB - Last synced: 3 months ago - Pushed: about 1 year ago - Stars: 40 - Forks: 2
protyposis/MediaPlayer-Extended
Android MediaPlayer API-compatible media player library with exact seek and DASH support
Language: Java - Size: 1.17 MB - Last synced: 3 months ago - Pushed: 3 months ago - Stars: 434 - Forks: 131
JimmyVV/httplive
http-chunked for live, easily implement and combine
Language: JavaScript - Size: 7.31 MB - Last synced: 11 days ago - Pushed: about 6 years ago - Stars: 113 - Forks: 8
VideoExpertsGroup/VXG.Media.SDK.Android
Market leading Android SDK with encoding, streaming & playback functionality. Connect any ONVIF, RTSP or any video source. Convert your phone into an IP camera, or broadcast video to millions, thanks to streaming in all popular formats such as WebRTC, RTSP, RTMP and HLS.
Language: Java - Size: 1010 MB - Last synced: 27 days ago - Pushed: almost 2 years ago - Stars: 141 - Forks: 67
mikeroyal/PipeWire-Guide
PipeWire Guide. Learn about how PipeWire gives your Linux system a Professional Audio/Video Processing workflow.
Language: Shell - Size: 270 KB - Last synced: 3 months ago - Pushed: 3 months ago - Stars: 713 - Forks: 17
Homer-Conferencing/Homer-Conferencing
Homer is a free cross-platform SIP softphone with video support.
Language: C++ - Size: 251 MB - Last synced: about 2 months ago - Pushed: almost 9 years ago - Stars: 74 - Forks: 56
ultraleap/PlayRecorder
Unity scene logic recorder tool for editor and builds.
Language: C# - Size: 2.67 MB - Last synced: 23 days ago - Pushed: 5 months ago - Stars: 40 - Forks: 3
klemola/foobar2000-web-ui
Control Foobar2000 from a (remote) web browser
Language: TypeScript - Size: 1.02 MB - Last synced: about 1 month ago - Pushed: 5 months ago - Stars: 34 - Forks: 7
nitin42/Animated-Timeline
🔥 Create timeline and playback based animations in React
Language: JavaScript - Size: 21.6 MB - Last synced: 22 days ago - Pushed: about 6 years ago - Stars: 195 - Forks: 9
Stefangansevles/MousePlayback
Records your mouse / keyboard movement and plays them back. Supports key combinations
Language: C# - Size: 20.2 MB - Last synced: about 2 months ago - Pushed: almost 4 years ago - Stars: 6 - Forks: 0
halilozercan/BetterVideoPlayer 📦
Video playback on Android, made better in Kotlin, wrapping around the stock MediaPlayer API.
Language: Kotlin - Size: 28 MB - Last synced: about 1 month ago - Pushed: over 3 years ago - Stars: 285 - Forks: 94
reduzent/watchteleboy
Script to watch streams from teleboy.ch without browser/flash
Language: Python - Size: 519 KB - Last synced: about 1 month ago - Pushed: over 1 year ago - Stars: 31 - Forks: 11
mmende/soundengine
A C++ addon for node.js that allows interacting with soundcards to e.g. play, record or process live microphone samples and send them back to the speakers.
Language: C++ - Size: 1.31 MB - Last synced: 5 days ago - Pushed: 4 months ago - Stars: 6 - Forks: 1
HMS-Core/hms-audio-demo
HMS audio android sample code encapsulates APIs of the HUAWEI Audio Kit, which focuses on audio playback, audio effects and audio data.
Language: Java - Size: 26.1 MB - Last synced: 29 days ago - Pushed: about 1 year ago - Stars: 23 - Forks: 11
mytja/libwinmedia-py
Python bindings for libwinmedia, a tiny yet powerful media playback library for Windows and Linux.
Language: Python - Size: 247 KB - Last synced: 13 days ago - Pushed: over 2 years ago - Stars: 4 - Forks: 0
emirkabal/better-instagram-videos
The source code for the "Better Instagram Videos" extension is available on the Chrome Web Store. It allows easy playback of any Instagram video and volume adjustment.
Language: TypeScript - Size: 913 KB - Last synced: 14 days ago - Pushed: 28 days ago - Stars: 10 - Forks: 1
satvikvirmani/musicfp
A terminal based media player for programmers
Language: Python - Size: 143 KB - Last synced: 11 days ago - Pushed: almost 3 years ago - Stars: 3 - Forks: 0
freaktechnik/twitch-chatlog 📦
Fetch the chatlog to a twitch VOD from your command line.
Language: JavaScript - Size: 4.67 MB - Last synced: about 1 month ago - Pushed: almost 3 years ago - Stars: 83 - Forks: 15
dolbyio-samples/rts-app-react-publisher-viewer
A Real Time Streaming App example for dolby.io
Language: TypeScript - Size: 10.8 MB - Last synced: 28 days ago - Pushed: 6 months ago - Stars: 14 - Forks: 8
offthehandle/MemoryPlayer
Memory Player is an AngularJS module that provides page-to-page continued audio playback.
Language: JavaScript - Size: 11.9 MB - Last synced: 5 months ago - Pushed: over 5 years ago - Stars: 3 - Forks: 1
AtmolanderMimi/ez-audi
A light and easy Rust audio playback library
Language: Rust - Size: 45.3 MB - Last synced: 2 months ago - Pushed: 4 months ago - Stars: 0 - Forks: 0
balazs630/Spotify-Scripts-for-QuickSilver
Spotify triggers to control the playback functions
Language: AppleScript - Size: 8.79 KB - Last synced: 5 months ago - Pushed: almost 6 years ago - Stars: 1 - Forks: 0
hendych/AudioTabBarController
Custom UITabBarController to mimick apple music or spotify audio playback bar
Language: Swift - Size: 1.42 MB - Last synced: 2 months ago - Pushed: over 5 years ago - Stars: 13 - Forks: 3
EOussama/playback-sync
Syncs multiple sources together for playback and rewind with ease.
Language: Vue - Size: 4.08 MB - Last synced: 4 months ago - Pushed: 4 months ago - Stars: 0 - Forks: 0
maleimings/ExoPlayerOfflineDemo
a project to demostrate how to use ExoPlayer to download DASH videos and play downloaded contents.
Language: Kotlin - Size: 137 KB - Last synced: 12 days ago - Pushed: over 1 year ago - Stars: 4 - Forks: 0
ryanmccartney/ffmpeg-docker
FFMPEG running in Docker compiled with Decklink SDK
Language: JavaScript - Size: 11.3 MB - Last synced: 7 months ago - Pushed: 7 months ago - Stars: 7 - Forks: 2