fid-ffmpeg 0.4.0__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. fid_ffmpeg-0.4.3/LICENSE +21 -0
  2. fid_ffmpeg-0.4.3/PKG-INFO +192 -0
  3. fid_ffmpeg-0.4.3/README.md +142 -0
  4. fid_ffmpeg-0.4.3/pyproject.toml +46 -0
  5. fid_ffmpeg-0.4.3/src/fid_ffmpeg.egg-info/PKG-INFO +192 -0
  6. fid_ffmpeg-0.4.3/src/fid_ffmpeg.egg-info/SOURCES.txt +68 -0
  7. fid_ffmpeg-0.4.3/src/fid_ffmpeg.egg-info/requires.txt +4 -0
  8. fid_ffmpeg-0.4.3/src/fid_ffmpeg.egg-info/top_level.txt +2 -0
  9. fid_ffmpeg-0.4.3/src/initial_files/error_handling.py +13 -0
  10. fid_ffmpeg-0.4.3/src/tasks/__init__.py +0 -0
  11. fid_ffmpeg-0.4.3/src/tasks/audio/__init__.py +0 -0
  12. fid_ffmpeg-0.4.3/src/tasks/audio/audio_interactive.py +96 -0
  13. fid_ffmpeg-0.4.3/src/tasks/audio/bitrate.py +0 -0
  14. fid_ffmpeg-0.4.3/src/tasks/audio/channels.py +0 -0
  15. fid_ffmpeg-0.4.3/src/tasks/audio/codec.py +0 -0
  16. fid_ffmpeg-0.4.3/src/tasks/audio/compressor.py +0 -0
  17. fid_ffmpeg-0.4.3/src/tasks/audio/delay.py +0 -0
  18. fid_ffmpeg-0.4.3/src/tasks/audio/denoise.py +0 -0
  19. fid_ffmpeg-0.4.3/src/tasks/audio/equalizer.py +0 -0
  20. fid_ffmpeg-0.4.3/src/tasks/audio/fade.py +0 -0
  21. fid_ffmpeg-0.4.3/src/tasks/audio/mix.py +0 -0
  22. fid_ffmpeg-0.4.3/src/tasks/audio/mute.py +12 -0
  23. fid_ffmpeg-0.4.3/src/tasks/audio/normalize.py +0 -0
  24. fid_ffmpeg-0.4.3/src/tasks/audio/replace.py +0 -0
  25. fid_ffmpeg-0.4.3/src/tasks/audio/speed.py +0 -0
  26. fid_ffmpeg-0.4.3/src/tasks/audio/trim.py +0 -0
  27. fid_ffmpeg-0.4.3/src/tasks/audio/volume.py +0 -0
  28. fid_ffmpeg-0.4.3/src/tasks/encode/__init__.py +0 -0
  29. fid_ffmpeg-0.4.3/src/tasks/encode/av1.py +0 -0
  30. fid_ffmpeg-0.4.3/src/tasks/encode/encode_interactive.py +35 -0
  31. fid_ffmpeg-0.4.3/src/tasks/encode/h264.py +0 -0
  32. fid_ffmpeg-0.4.3/src/tasks/encode/h265.py +0 -0
  33. fid_ffmpeg-0.4.3/src/tasks/extract/__init__.py +0 -0
  34. fid_ffmpeg-0.4.3/src/tasks/extract/attachments.py +0 -0
  35. fid_ffmpeg-0.4.3/src/tasks/extract/audio.py +12 -0
  36. fid_ffmpeg-0.4.3/src/tasks/extract/audio_channels.py +0 -0
  37. fid_ffmpeg-0.4.3/src/tasks/extract/audio_track.py +0 -0
  38. fid_ffmpeg-0.4.3/src/tasks/extract/chapters.py +0 -0
  39. fid_ffmpeg-0.4.3/src/tasks/extract/extract_interactive.py +75 -0
  40. fid_ffmpeg-0.4.3/src/tasks/extract/frames.py +14 -0
  41. fid_ffmpeg-0.4.3/src/tasks/extract/keyframes.py +0 -0
  42. fid_ffmpeg-0.4.3/src/tasks/extract/subtitles.py +0 -0
  43. fid_ffmpeg-0.4.3/src/tasks/extract/subtitles_convert.py +0 -0
  44. fid_ffmpeg-0.4.3/src/tasks/extract/subtitles_track.py +0 -0
  45. fid_ffmpeg-0.4.3/src/tasks/extract/thumbnails.py +0 -0
  46. fid_ffmpeg-0.4.3/src/tasks/info.py +11 -0
  47. fid_ffmpeg-0.4.3/src/tasks/stream/__init__.py +0 -0
  48. fid_ffmpeg-0.4.3/src/tasks/stream/dash.py +0 -0
  49. fid_ffmpeg-0.4.3/src/tasks/stream/hls.py +0 -0
  50. fid_ffmpeg-0.4.3/src/tasks/stream/http.py +0 -0
  51. fid_ffmpeg-0.4.3/src/tasks/stream/rtmp.py +0 -0
  52. fid_ffmpeg-0.4.3/src/tasks/stream/rtsp.py +0 -0
  53. fid_ffmpeg-0.4.3/src/tasks/stream/srt.py +0 -0
  54. fid_ffmpeg-0.4.3/src/tasks/stream/stream_interactive.py +56 -0
  55. fid_ffmpeg-0.4.3/src/tasks/stream/udp.py +0 -0
  56. fid_ffmpeg-0.4.3/src/tasks/video/__init__.py +0 -0
  57. fid_ffmpeg-0.4.3/src/tasks/video/compressor.py +14 -0
  58. fid_ffmpeg-0.4.3/src/tasks/video/concat.py +0 -0
  59. fid_ffmpeg-0.4.3/src/tasks/video/crop.py +0 -0
  60. fid_ffmpeg-0.4.3/src/tasks/video/fps.py +0 -0
  61. fid_ffmpeg-0.4.3/src/tasks/video/gif.py +12 -0
  62. fid_ffmpeg-0.4.3/src/tasks/video/resize.py +20 -0
  63. fid_ffmpeg-0.4.3/src/tasks/video/rotate.py +0 -0
  64. fid_ffmpeg-0.4.3/src/tasks/video/speed.py +0 -0
  65. fid_ffmpeg-0.4.3/src/tasks/video/trim.py +1 -0
  66. fid_ffmpeg-0.4.3/src/tasks/video/video_interactive.py +66 -0
  67. fid_ffmpeg-0.4.0/LICENSE +0 -8
  68. fid_ffmpeg-0.4.0/PKG-INFO +0 -42
  69. fid_ffmpeg-0.4.0/README.md +0 -32
  70. fid_ffmpeg-0.4.0/fid/fid.py +0 -72
  71. fid_ffmpeg-0.4.0/fid/welcome.py +0 -23
  72. fid_ffmpeg-0.4.0/fid_ffmpeg.egg-info/PKG-INFO +0 -42
  73. fid_ffmpeg-0.4.0/fid_ffmpeg.egg-info/SOURCES.txt +0 -12
  74. fid_ffmpeg-0.4.0/fid_ffmpeg.egg-info/requires.txt +0 -1
  75. fid_ffmpeg-0.4.0/fid_ffmpeg.egg-info/top_level.txt +0 -1
  76. fid_ffmpeg-0.4.0/pyproject.toml +0 -12
  77. {fid_ffmpeg-0.4.0 → fid_ffmpeg-0.4.3}/setup.cfg +0 -0
  78. {fid_ffmpeg-0.4.0 → fid_ffmpeg-0.4.3/src}/fid_ffmpeg.egg-info/dependency_links.txt +0 -0
  79. {fid_ffmpeg-0.4.0 → fid_ffmpeg-0.4.3/src}/fid_ffmpeg.egg-info/entry_points.txt +0 -0
  80. {fid_ffmpeg-0.4.0/fid → fid_ffmpeg-0.4.3/src/initial_files}/__init__.py +0 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Omar Abdalgwad
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE .
@@ -0,0 +1,192 @@
1
+ Metadata-Version: 2.4
2
+ Name: fid-ffmpeg
3
+ Version: 0.4.3
4
+ Summary: FFmpeg-based CLI tool for video and audio operations like editing, extracting, streaming, and encoding
5
+ Author-email: Omar Abdalgwad <ahlawyomar95@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 Omar Abdalgwad
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE .
27
+ Project-URL: Homepage, https://github.com/Omarabdalgwad/fid-FFmpeg
28
+ Project-URL: Repository, https://github.com/Omarabdalgwad/fid-FFmpeg.git
29
+ Project-URL: Documentation, https://github.com/Omarabdalgwad/fid-FFmpeg#readme
30
+ Project-URL: Issues, https://github.com/Omarabdalgwad/fid-FFmpeg/issues
31
+ Classifier: Programming Language :: Python :: 3
32
+ Classifier: Programming Language :: Python :: 3.8
33
+ Classifier: Programming Language :: Python :: 3.9
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: License :: OSI Approved :: MIT License
38
+ Classifier: Operating System :: OS Independent
39
+ Classifier: Topic :: Multimedia :: Video
40
+ Classifier: Topic :: Multimedia :: Sound/Audio
41
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
42
+ Requires-Python: >=3.8
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: typer>=0.7
46
+ Requires-Dist: questionary>=1.10
47
+ Requires-Dist: rich>=13.0
48
+ Requires-Dist: pyfiglet>=0.8
49
+ Dynamic: license-file
50
+
51
+ # fid-ffmpeg [![PyPI Downloads](https://static.pepy.tech/personalized-badge/fid-ffmpeg?period=total&units=international_system&left_color=black&right_color=green&left_text=downloads)](https://pepy.tech/project/fid-ffmpeg)
52
+
53
+ Python wrapper around the FFmpeg command line tool for video operations.
54
+
55
+ ```bash
56
+ fid
57
+ ```
58
+ https://github.com/user-attachments/assets/abcc8aa0-3ada-4548-8f99-987687cfccd9
59
+
60
+ ## Requirements
61
+
62
+ - python >=3.9 : [Download Python](https://www.python.org/downloads/)
63
+ - ffmpeg : [Download FFmpeg](https://www.ffmpeg.org/download.html)
64
+ - install fid-cli with pip :
65
+ ```bash
66
+ pip install fid-ffmpeg
67
+ ```
68
+ ## installation demo
69
+ https://github.com/user-attachments/assets/6063b46b-dd4a-4cb3-a318-869f37bcf60f
70
+
71
+ ## Usage
72
+ Run `fid` for the interactive menu, or use direct commands:
73
+
74
+ - `fid --help`: Show help for fid CLI.
75
+ - `fid info "videoPath"`: Get all info about the video.
76
+ - `fid audio "videoPath"`: Extract audio from the video.
77
+ - `fid mute "videoPath"`: Mute the video.
78
+ - `fid gif "videoPath"`: Create a GIF from the video.
79
+ - `fid frames "videoPath"`: Extract all video frames into a folder.
80
+ - `fid compress "videoPath"`: Compress the video to reduce file size.
81
+
82
+ For more advanced options, use the interactive mode by running `fid` without arguments.
83
+
84
+ ## Features
85
+ - Interactive CLI with menus for video, audio, extract, stream, and encode operations.
86
+ - Built with Typer for commands and Questionary for interactive prompts.
87
+ - Rich console output for a modern look.
88
+
89
+ ## Project Structure
90
+
91
+ ```
92
+ ```
93
+
94
+ FID
95
+ ├─ LICENSE
96
+ ├─ pyproject.toml
97
+ ├─ README.md
98
+ └─ src
99
+ ├─ fid.py
100
+ ├─ fid_interactive.py
101
+ ├─ initial_files
102
+ │ ├─ error_handling.py
103
+ │ └─ __init__.py
104
+ ├─ tasks
105
+ │ ├─ audio
106
+ │ │ ├─ audio_interactive.py
107
+ │ │ ├─ bitrate.py
108
+ │ │ ├─ channels.py
109
+ │ │ ├─ codec.py
110
+ │ │ ├─ compressor.py
111
+ │ │ ├─ delay.py
112
+ │ │ ├─ denoise.py
113
+ │ │ ├─ equalizer.py
114
+ │ │ ├─ fade.py
115
+ │ │ ├─ mix.py
116
+ │ │ ├─ mute.py
117
+ │ │ ├─ normalize.py
118
+ │ │ ├─ replace.py
119
+ │ │ ├─ speed.py
120
+ │ │ ├─ trim.py
121
+ │ │ ├─ volume.py
122
+ │ │ └─ __init__.py
123
+ │ ├─ encode
124
+ │ │ ├─ av1.py
125
+ │ │ ├─ encode_interactive.py
126
+ │ │ ├─ h264.py
127
+ │ │ ├─ h265.py
128
+ │ │ └─ __init__.py
129
+ │ ├─ extract
130
+ │ │ ├─ attachments.py
131
+ │ │ ├─ audio.py
132
+ │ │ ├─ audio_channels.py
133
+ │ │ ├─ audio_track.py
134
+ │ │ ├─ chapters.py
135
+ │ │ ├─ extract_interactive.py
136
+ │ │ ├─ frames.py
137
+ │ │ ├─ keyframes.py
138
+ │ │ ├─ subtitles.py
139
+ │ │ ├─ subtitles_convert.py
140
+ │ │ ├─ subtitles_track.py
141
+ │ │ ├─ thumbnails.py
142
+ │ │ └─ __init__.py
143
+ │ ├─ info.py
144
+ │ ├─ stream
145
+ │ │ ├─ dash.py
146
+ │ │ ├─ hls.py
147
+ │ │ ├─ http.py
148
+ │ │ ├─ rtmp.py
149
+ │ │ ├─ rtsp.py
150
+ │ │ ├─ srt.py
151
+ │ │ ├─ stream_interactive.py
152
+ │ │ ├─ udp.py
153
+ │ │ └─ __init__.py
154
+ │ ├─ video
155
+ │ │ ├─ compressor.py
156
+ │ │ ├─ concat.py
157
+ │ │ ├─ crop.py
158
+ │ │ ├─ fps.py
159
+ │ │ ├─ gif.py
160
+ │ │ ├─ resize.py
161
+ │ │ ├─ rotate.py
162
+ │ │ ├─ speed.py
163
+ │ │ ├─ trim.py
164
+ │ │ ├─ video_interactive.py
165
+ │ │ └─ __init__.py
166
+ │ └─ __init__.py
167
+ ├─ welcome.py
168
+ └─ __init__.py
169
+
170
+ ```
171
+
172
+ ## Contributing
173
+ Contributions are welcome! Fork the repo, create a branch, and submit a pull request. For major changes, open an issue first.
174
+
175
+ ## About
176
+ Python wrapper around the FFmpeg command line tool.
177
+
178
+ [PyPI Project](https://pypi.org/project/fid-ffmpeg/)
179
+
180
+ ### Topics
181
+ - audio
182
+ - python
183
+ - cli
184
+ - video
185
+ - ffmpeg
186
+ - frames
187
+ - gif
188
+ - compressor
189
+ - ffmpeg-wrapper
190
+ - rich
191
+ - mute
192
+ - typer-cli
@@ -0,0 +1,142 @@
1
+ # fid-ffmpeg [![PyPI Downloads](https://static.pepy.tech/personalized-badge/fid-ffmpeg?period=total&units=international_system&left_color=black&right_color=green&left_text=downloads)](https://pepy.tech/project/fid-ffmpeg)
2
+
3
+ Python wrapper around the FFmpeg command line tool for video operations.
4
+
5
+ ```bash
6
+ fid
7
+ ```
8
+ https://github.com/user-attachments/assets/abcc8aa0-3ada-4548-8f99-987687cfccd9
9
+
10
+ ## Requirements
11
+
12
+ - python >=3.9 : [Download Python](https://www.python.org/downloads/)
13
+ - ffmpeg : [Download FFmpeg](https://www.ffmpeg.org/download.html)
14
+ - install fid-cli with pip :
15
+ ```bash
16
+ pip install fid-ffmpeg
17
+ ```
18
+ ## installation demo
19
+ https://github.com/user-attachments/assets/6063b46b-dd4a-4cb3-a318-869f37bcf60f
20
+
21
+ ## Usage
22
+ Run `fid` for the interactive menu, or use direct commands:
23
+
24
+ - `fid --help`: Show help for fid CLI.
25
+ - `fid info "videoPath"`: Get all info about the video.
26
+ - `fid audio "videoPath"`: Extract audio from the video.
27
+ - `fid mute "videoPath"`: Mute the video.
28
+ - `fid gif "videoPath"`: Create a GIF from the video.
29
+ - `fid frames "videoPath"`: Extract all video frames into a folder.
30
+ - `fid compress "videoPath"`: Compress the video to reduce file size.
31
+
32
+ For more advanced options, use the interactive mode by running `fid` without arguments.
33
+
34
+ ## Features
35
+ - Interactive CLI with menus for video, audio, extract, stream, and encode operations.
36
+ - Built with Typer for commands and Questionary for interactive prompts.
37
+ - Rich console output for a modern look.
38
+
39
+ ## Project Structure
40
+
41
+ ```
42
+ ```
43
+
44
+ FID
45
+ ├─ LICENSE
46
+ ├─ pyproject.toml
47
+ ├─ README.md
48
+ └─ src
49
+ ├─ fid.py
50
+ ├─ fid_interactive.py
51
+ ├─ initial_files
52
+ │ ├─ error_handling.py
53
+ │ └─ __init__.py
54
+ ├─ tasks
55
+ │ ├─ audio
56
+ │ │ ├─ audio_interactive.py
57
+ │ │ ├─ bitrate.py
58
+ │ │ ├─ channels.py
59
+ │ │ ├─ codec.py
60
+ │ │ ├─ compressor.py
61
+ │ │ ├─ delay.py
62
+ │ │ ├─ denoise.py
63
+ │ │ ├─ equalizer.py
64
+ │ │ ├─ fade.py
65
+ │ │ ├─ mix.py
66
+ │ │ ├─ mute.py
67
+ │ │ ├─ normalize.py
68
+ │ │ ├─ replace.py
69
+ │ │ ├─ speed.py
70
+ │ │ ├─ trim.py
71
+ │ │ ├─ volume.py
72
+ │ │ └─ __init__.py
73
+ │ ├─ encode
74
+ │ │ ├─ av1.py
75
+ │ │ ├─ encode_interactive.py
76
+ │ │ ├─ h264.py
77
+ │ │ ├─ h265.py
78
+ │ │ └─ __init__.py
79
+ │ ├─ extract
80
+ │ │ ├─ attachments.py
81
+ │ │ ├─ audio.py
82
+ │ │ ├─ audio_channels.py
83
+ │ │ ├─ audio_track.py
84
+ │ │ ├─ chapters.py
85
+ │ │ ├─ extract_interactive.py
86
+ │ │ ├─ frames.py
87
+ │ │ ├─ keyframes.py
88
+ │ │ ├─ subtitles.py
89
+ │ │ ├─ subtitles_convert.py
90
+ │ │ ├─ subtitles_track.py
91
+ │ │ ├─ thumbnails.py
92
+ │ │ └─ __init__.py
93
+ │ ├─ info.py
94
+ │ ├─ stream
95
+ │ │ ├─ dash.py
96
+ │ │ ├─ hls.py
97
+ │ │ ├─ http.py
98
+ │ │ ├─ rtmp.py
99
+ │ │ ├─ rtsp.py
100
+ │ │ ├─ srt.py
101
+ │ │ ├─ stream_interactive.py
102
+ │ │ ├─ udp.py
103
+ │ │ └─ __init__.py
104
+ │ ├─ video
105
+ │ │ ├─ compressor.py
106
+ │ │ ├─ concat.py
107
+ │ │ ├─ crop.py
108
+ │ │ ├─ fps.py
109
+ │ │ ├─ gif.py
110
+ │ │ ├─ resize.py
111
+ │ │ ├─ rotate.py
112
+ │ │ ├─ speed.py
113
+ │ │ ├─ trim.py
114
+ │ │ ├─ video_interactive.py
115
+ │ │ └─ __init__.py
116
+ │ └─ __init__.py
117
+ ├─ welcome.py
118
+ └─ __init__.py
119
+
120
+ ```
121
+
122
+ ## Contributing
123
+ Contributions are welcome! Fork the repo, create a branch, and submit a pull request. For major changes, open an issue first.
124
+
125
+ ## About
126
+ Python wrapper around the FFmpeg command line tool.
127
+
128
+ [PyPI Project](https://pypi.org/project/fid-ffmpeg/)
129
+
130
+ ### Topics
131
+ - audio
132
+ - python
133
+ - cli
134
+ - video
135
+ - ffmpeg
136
+ - frames
137
+ - gif
138
+ - compressor
139
+ - ffmpeg-wrapper
140
+ - rich
141
+ - mute
142
+ - typer-cli
@@ -0,0 +1,46 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "fid-ffmpeg"
7
+ version = "0.4.3"
8
+ description = "FFmpeg-based CLI tool for video and audio operations like editing, extracting, streaming, and encoding"
9
+ readme = "README.md"
10
+ authors = [{ name = "Omar Abdalgwad", email = "ahlawyomar95@gmail.com" }]
11
+ license = { file = "LICENSE" }
12
+ requires-python = ">=3.8"
13
+ dependencies = [
14
+ "typer>=0.7",
15
+ "questionary>=1.10",
16
+ "rich>=13.0",
17
+ "pyfiglet>=0.8"
18
+ ]
19
+ classifiers = [
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3.8",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ "Programming Language :: Python :: 3.12",
26
+ "License :: OSI Approved :: MIT License",
27
+ "Operating System :: OS Independent",
28
+ "Topic :: Multimedia :: Video",
29
+ "Topic :: Multimedia :: Sound/Audio",
30
+ "Topic :: Software Development :: Libraries :: Python Modules"
31
+ ]
32
+
33
+ [tool.setuptools]
34
+ package-dir = { "" = "src" }
35
+
36
+ [tool.setuptools.packages.find]
37
+ where = ["src"]
38
+
39
+ [project.urls]
40
+ Homepage = "https://github.com/Omarabdalgwad/fid-FFmpeg"
41
+ Repository = "https://github.com/Omarabdalgwad/fid-FFmpeg.git"
42
+ Documentation = "https://github.com/Omarabdalgwad/fid-FFmpeg#readme"
43
+ Issues = "https://github.com/Omarabdalgwad/fid-FFmpeg/issues"
44
+
45
+ [project.scripts]
46
+ fid = "fid.fid:app"
@@ -0,0 +1,192 @@
1
+ Metadata-Version: 2.4
2
+ Name: fid-ffmpeg
3
+ Version: 0.4.3
4
+ Summary: FFmpeg-based CLI tool for video and audio operations like editing, extracting, streaming, and encoding
5
+ Author-email: Omar Abdalgwad <ahlawyomar95@gmail.com>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2026 Omar Abdalgwad
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE .
27
+ Project-URL: Homepage, https://github.com/Omarabdalgwad/fid-FFmpeg
28
+ Project-URL: Repository, https://github.com/Omarabdalgwad/fid-FFmpeg.git
29
+ Project-URL: Documentation, https://github.com/Omarabdalgwad/fid-FFmpeg#readme
30
+ Project-URL: Issues, https://github.com/Omarabdalgwad/fid-FFmpeg/issues
31
+ Classifier: Programming Language :: Python :: 3
32
+ Classifier: Programming Language :: Python :: 3.8
33
+ Classifier: Programming Language :: Python :: 3.9
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: License :: OSI Approved :: MIT License
38
+ Classifier: Operating System :: OS Independent
39
+ Classifier: Topic :: Multimedia :: Video
40
+ Classifier: Topic :: Multimedia :: Sound/Audio
41
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
42
+ Requires-Python: >=3.8
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE
45
+ Requires-Dist: typer>=0.7
46
+ Requires-Dist: questionary>=1.10
47
+ Requires-Dist: rich>=13.0
48
+ Requires-Dist: pyfiglet>=0.8
49
+ Dynamic: license-file
50
+
51
+ # fid-ffmpeg [![PyPI Downloads](https://static.pepy.tech/personalized-badge/fid-ffmpeg?period=total&units=international_system&left_color=black&right_color=green&left_text=downloads)](https://pepy.tech/project/fid-ffmpeg)
52
+
53
+ Python wrapper around the FFmpeg command line tool for video operations.
54
+
55
+ ```bash
56
+ fid
57
+ ```
58
+ https://github.com/user-attachments/assets/abcc8aa0-3ada-4548-8f99-987687cfccd9
59
+
60
+ ## Requirements
61
+
62
+ - python >=3.9 : [Download Python](https://www.python.org/downloads/)
63
+ - ffmpeg : [Download FFmpeg](https://www.ffmpeg.org/download.html)
64
+ - install fid-cli with pip :
65
+ ```bash
66
+ pip install fid-ffmpeg
67
+ ```
68
+ ## installation demo
69
+ https://github.com/user-attachments/assets/6063b46b-dd4a-4cb3-a318-869f37bcf60f
70
+
71
+ ## Usage
72
+ Run `fid` for the interactive menu, or use direct commands:
73
+
74
+ - `fid --help`: Show help for fid CLI.
75
+ - `fid info "videoPath"`: Get all info about the video.
76
+ - `fid audio "videoPath"`: Extract audio from the video.
77
+ - `fid mute "videoPath"`: Mute the video.
78
+ - `fid gif "videoPath"`: Create a GIF from the video.
79
+ - `fid frames "videoPath"`: Extract all video frames into a folder.
80
+ - `fid compress "videoPath"`: Compress the video to reduce file size.
81
+
82
+ For more advanced options, use the interactive mode by running `fid` without arguments.
83
+
84
+ ## Features
85
+ - Interactive CLI with menus for video, audio, extract, stream, and encode operations.
86
+ - Built with Typer for commands and Questionary for interactive prompts.
87
+ - Rich console output for a modern look.
88
+
89
+ ## Project Structure
90
+
91
+ ```
92
+ ```
93
+
94
+ FID
95
+ ├─ LICENSE
96
+ ├─ pyproject.toml
97
+ ├─ README.md
98
+ └─ src
99
+ ├─ fid.py
100
+ ├─ fid_interactive.py
101
+ ├─ initial_files
102
+ │ ├─ error_handling.py
103
+ │ └─ __init__.py
104
+ ├─ tasks
105
+ │ ├─ audio
106
+ │ │ ├─ audio_interactive.py
107
+ │ │ ├─ bitrate.py
108
+ │ │ ├─ channels.py
109
+ │ │ ├─ codec.py
110
+ │ │ ├─ compressor.py
111
+ │ │ ├─ delay.py
112
+ │ │ ├─ denoise.py
113
+ │ │ ├─ equalizer.py
114
+ │ │ ├─ fade.py
115
+ │ │ ├─ mix.py
116
+ │ │ ├─ mute.py
117
+ │ │ ├─ normalize.py
118
+ │ │ ├─ replace.py
119
+ │ │ ├─ speed.py
120
+ │ │ ├─ trim.py
121
+ │ │ ├─ volume.py
122
+ │ │ └─ __init__.py
123
+ │ ├─ encode
124
+ │ │ ├─ av1.py
125
+ │ │ ├─ encode_interactive.py
126
+ │ │ ├─ h264.py
127
+ │ │ ├─ h265.py
128
+ │ │ └─ __init__.py
129
+ │ ├─ extract
130
+ │ │ ├─ attachments.py
131
+ │ │ ├─ audio.py
132
+ │ │ ├─ audio_channels.py
133
+ │ │ ├─ audio_track.py
134
+ │ │ ├─ chapters.py
135
+ │ │ ├─ extract_interactive.py
136
+ │ │ ├─ frames.py
137
+ │ │ ├─ keyframes.py
138
+ │ │ ├─ subtitles.py
139
+ │ │ ├─ subtitles_convert.py
140
+ │ │ ├─ subtitles_track.py
141
+ │ │ ├─ thumbnails.py
142
+ │ │ └─ __init__.py
143
+ │ ├─ info.py
144
+ │ ├─ stream
145
+ │ │ ├─ dash.py
146
+ │ │ ├─ hls.py
147
+ │ │ ├─ http.py
148
+ │ │ ├─ rtmp.py
149
+ │ │ ├─ rtsp.py
150
+ │ │ ├─ srt.py
151
+ │ │ ├─ stream_interactive.py
152
+ │ │ ├─ udp.py
153
+ │ │ └─ __init__.py
154
+ │ ├─ video
155
+ │ │ ├─ compressor.py
156
+ │ │ ├─ concat.py
157
+ │ │ ├─ crop.py
158
+ │ │ ├─ fps.py
159
+ │ │ ├─ gif.py
160
+ │ │ ├─ resize.py
161
+ │ │ ├─ rotate.py
162
+ │ │ ├─ speed.py
163
+ │ │ ├─ trim.py
164
+ │ │ ├─ video_interactive.py
165
+ │ │ └─ __init__.py
166
+ │ └─ __init__.py
167
+ ├─ welcome.py
168
+ └─ __init__.py
169
+
170
+ ```
171
+
172
+ ## Contributing
173
+ Contributions are welcome! Fork the repo, create a branch, and submit a pull request. For major changes, open an issue first.
174
+
175
+ ## About
176
+ Python wrapper around the FFmpeg command line tool.
177
+
178
+ [PyPI Project](https://pypi.org/project/fid-ffmpeg/)
179
+
180
+ ### Topics
181
+ - audio
182
+ - python
183
+ - cli
184
+ - video
185
+ - ffmpeg
186
+ - frames
187
+ - gif
188
+ - compressor
189
+ - ffmpeg-wrapper
190
+ - rich
191
+ - mute
192
+ - typer-cli
@@ -0,0 +1,68 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/fid_ffmpeg.egg-info/PKG-INFO
5
+ src/fid_ffmpeg.egg-info/SOURCES.txt
6
+ src/fid_ffmpeg.egg-info/dependency_links.txt
7
+ src/fid_ffmpeg.egg-info/entry_points.txt
8
+ src/fid_ffmpeg.egg-info/requires.txt
9
+ src/fid_ffmpeg.egg-info/top_level.txt
10
+ src/initial_files/__init__.py
11
+ src/initial_files/error_handling.py
12
+ src/tasks/__init__.py
13
+ src/tasks/info.py
14
+ src/tasks/audio/__init__.py
15
+ src/tasks/audio/audio_interactive.py
16
+ src/tasks/audio/bitrate.py
17
+ src/tasks/audio/channels.py
18
+ src/tasks/audio/codec.py
19
+ src/tasks/audio/compressor.py
20
+ src/tasks/audio/delay.py
21
+ src/tasks/audio/denoise.py
22
+ src/tasks/audio/equalizer.py
23
+ src/tasks/audio/fade.py
24
+ src/tasks/audio/mix.py
25
+ src/tasks/audio/mute.py
26
+ src/tasks/audio/normalize.py
27
+ src/tasks/audio/replace.py
28
+ src/tasks/audio/speed.py
29
+ src/tasks/audio/trim.py
30
+ src/tasks/audio/volume.py
31
+ src/tasks/encode/__init__.py
32
+ src/tasks/encode/av1.py
33
+ src/tasks/encode/encode_interactive.py
34
+ src/tasks/encode/h264.py
35
+ src/tasks/encode/h265.py
36
+ src/tasks/extract/__init__.py
37
+ src/tasks/extract/attachments.py
38
+ src/tasks/extract/audio.py
39
+ src/tasks/extract/audio_channels.py
40
+ src/tasks/extract/audio_track.py
41
+ src/tasks/extract/chapters.py
42
+ src/tasks/extract/extract_interactive.py
43
+ src/tasks/extract/frames.py
44
+ src/tasks/extract/keyframes.py
45
+ src/tasks/extract/subtitles.py
46
+ src/tasks/extract/subtitles_convert.py
47
+ src/tasks/extract/subtitles_track.py
48
+ src/tasks/extract/thumbnails.py
49
+ src/tasks/stream/__init__.py
50
+ src/tasks/stream/dash.py
51
+ src/tasks/stream/hls.py
52
+ src/tasks/stream/http.py
53
+ src/tasks/stream/rtmp.py
54
+ src/tasks/stream/rtsp.py
55
+ src/tasks/stream/srt.py
56
+ src/tasks/stream/stream_interactive.py
57
+ src/tasks/stream/udp.py
58
+ src/tasks/video/__init__.py
59
+ src/tasks/video/compressor.py
60
+ src/tasks/video/concat.py
61
+ src/tasks/video/crop.py
62
+ src/tasks/video/fps.py
63
+ src/tasks/video/gif.py
64
+ src/tasks/video/resize.py
65
+ src/tasks/video/rotate.py
66
+ src/tasks/video/speed.py
67
+ src/tasks/video/trim.py
68
+ src/tasks/video/video_interactive.py
@@ -0,0 +1,4 @@
1
+ typer>=0.7
2
+ questionary>=1.10
3
+ rich>=13.0
4
+ pyfiglet>=0.8
@@ -0,0 +1,2 @@
1
+ initial_files
2
+ tasks
@@ -0,0 +1,13 @@
1
+ import typer
2
+ from pathlib import Path
3
+ import shutil
4
+
5
+ def ffmpeg():
6
+ if shutil.which("ffmpeg")is None:
7
+ print("ffmpeg isn't installed\n download from: https://ffmpeg.org/download.html")
8
+ raise typer.Exit()
9
+
10
+ def ckvideo(video_path:Path):
11
+ if not vid.exists():
12
+ print("file doesn't exist :)")
13
+ raise typer.Exit()
File without changes
File without changes