You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+49-13Lines changed: 49 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -130,43 +130,71 @@ Or fluently:
130
130
)
131
131
```
132
132
133
-
Arguments with special names such as `-qscale:v` can be specified as a keyword-args dictionary as follows:
133
+
**Special option names:**
134
+
135
+
Arguments with special names such as `-qscale:v` (variable bitrate), `-b:v` (constant bitrate), etc. can be specified as a keyword-args dictionary as follows:
134
136
```python
135
137
(
136
138
ffmpeg
137
-
.input('dummy.mp4')
138
-
.output('dummy2.mp4', **{'qscale:v': 3})
139
+
.input('in.mp4')
140
+
.output('out.mp4', **{'qscale:v': 3})
139
141
.run()
140
142
)
141
143
```
142
144
143
-
Filters that take multiple input streams can be specified by passing the input streams as an array to `ffmpeg.filter`:
145
+
**Multiple inputs:**
146
+
147
+
Filters that take multiple input streams can be used by passing the input streams as an array to `ffmpeg.filter`:
144
148
```python
145
149
main = ffmpeg.input('main.mp4')
146
150
logo = ffmpeg.input('logo.png')
147
-
stream =(
151
+
(
148
152
ffmpeg
149
153
.filter([main, logo], 'overlay', 10, 10)
150
154
.output('out.mp4')
151
155
.run()
152
156
)
153
157
```
154
158
155
-
When in doubt, refer to the [existing filters](https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py), [examples](https://github.com/kkroening/ffmpeg-python/tree/master/examples), and/or the [official ffmpeg documentation](https://ffmpeg.org/ffmpeg-filters.html).
159
+
**Multiple outputs:**
156
160
157
-
## Frequently asked questions
161
+
Filters that produce multiple outputs can be used with `.filter_multi_output`:
162
+
```python
163
+
split = (
164
+
ffmpeg
165
+
.input('in.mp4')
166
+
.filter_multi_output('split') # or `.split()`
167
+
)
168
+
(
169
+
ffmpeg
170
+
.concat(split[0], split[1].reverse())
171
+
.output('out.mp4')
172
+
.run()
173
+
)
174
+
```
175
+
(In this particular case, `.split()` is the equivalent shorthand, but the general approach works for other multi-output filters)
158
176
159
-
**Why do I get an import/attribute/etc. error from `import ffmpeg`?**
177
+
**String expressions:**
160
178
161
-
Make sure you ran `pip install ffmpeg-python` and not `pip install ffmpeg` or `pip install python-ffmpeg`.
179
+
Expressions to be interpreted by ffmpeg can be included as string parameters and reference any special ffmpeg variable names:
180
+
```python
181
+
(
182
+
ffmpeg
183
+
.input('in.mp4')
184
+
.filter('crop', 'in_w-2*10', 'in_h-2*20')
185
+
.input('out.mp4')
186
+
)
187
+
```
162
188
163
-
**How do I do XYZ?**
189
+
<br />
164
190
165
-
Take a look at each of the links in the [Additional Resources](https://kkroening.github.io/ffmpeg-python/) section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far.
191
+
When in doubt, refer to the [existing filters](https://github.com/kkroening/ffmpeg-python/blob/master/ffmpeg/_filters.py), [examples](https://github.com/kkroening/ffmpeg-python/tree/master/examples), and/or the [official ffmpeg documentation](https://ffmpeg.org/ffmpeg-filters.html).
166
192
167
-
Issues not directly related to `ffmpeg-python` or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed.
193
+
## Frequently asked questions
168
194
169
-
That said, we hope to continue improving our documentation and provide a community of support for people using `ffmpeg-python` to do cool and exciting things.
195
+
**Why do I get an import/attribute/etc. error from `import ffmpeg`?**
196
+
197
+
Make sure you ran `pip install ffmpeg-python` and not `pip install ffmpeg` or `pip install python-ffmpeg`.
170
198
171
199
**Why did my audio stream get dropped?**
172
200
@@ -176,6 +204,14 @@ This dilemma is intrinsic to ffmpeg, and ffmpeg-python tries to stay out of the
176
204
177
205
As usual, take a look at the [examples](https://github.com/kkroening/ffmpeg-python/tree/master/examples#audiovideo-pipeline) (*Audio/video pipeline* in particular).
178
206
207
+
**How do I do XYZ?**
208
+
209
+
Take a look at each of the links in the [Additional Resources](https://kkroening.github.io/ffmpeg-python/) section at the end of this README. If you look everywhere and can't find what you're looking for and have a question that may be relevant to other users, you may open an issue asking how to do it, while providing a thorough explanation of what you're trying to do and what you've tried so far.
210
+
211
+
Issues not directly related to `ffmpeg-python` or issues asking others to write your code for you or how to do the work of solving a complex signal processing problem for you that's not relevant to other users will be closed.
212
+
213
+
That said, we hope to continue improving our documentation and provide a community of support for people using `ffmpeg-python` to do cool and exciting things.
0 commit comments