8000 Update docs · Powercoder64/ffmpeg-python@c53907a · GitHub
[go: up one dir, main page]

Skip to content

Commit c53907a

Browse files
committed
Update docs
1 parent 6292028 commit c53907a

File tree

4 files changed

+94
-3
lines changed

4 files changed

+94
-3
lines changed

doc/html/genindex.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,10 @@ <h2 id="R">R</h2>
170170
<table style="width: 100%" class="indextable genindextable"><tr>
171171
<td style="width: 33%; vertical-align: top;"><ul>
172172
<li><a href="index.html#ffmpeg.run">run() (in module ffmpeg)</a>
173+
</li>
174+
</ul></td>
175+
<td style="width: 33%; vertical-align: top;"><ul>
176+
<li><a href="index.html#ffmpeg.run_async">run_async() (in module ffmpeg)</a>
173177
</li>
174178
</ul></td>
175179
</tr></table>
Lines changed: 89 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ <h1>ffmpeg-python: Python bindings for FFmpeg<a class="headerlink" href="#ffmpeg
569569
<dl class="function">
570570
<dt id="ffmpeg.run">
571571
<code class="descclassname">ffmpeg.</code><code class="descname">run</code><span class="sig-paren">(</span><em>stream_spec</em>, <em>cmd='ffmpeg'</em>, <em>capture_stdout=False</em>, <em>capture_stderr=False</em>, <em>input=None</em>, <em>quiet=False</em>, <em>overwrite_output=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ffmpeg.run" title="Permalink to this definition"></a></dt>
572-
<dd><p>Ivoke ffmpeg for the supplied node graph.</p>
572+
<dd><p>Invoke ffmpeg for the supplied node graph.</p>
573573
<table class="docutils field-list" frame="void" rules="none">
574574
<col class="field-name" />
575575
<col class="field-body" />
@@ -591,14 +591,101 @@ <h1>ffmpeg-python: Python bindings for FFmpeg<a class="headerlink" href="#ffmpeg
591591
<p>Returns: (out, err) tuple containing captured stdout and stderr data.</p>
592592
</dd></dl>
593593

594+
<dl class="function">
595+
<dt id="ffmpeg.run_async">
596+
<code class="descclassname">ffmpeg.</code><code class="descname">run_async</code><span class="sig-paren">(</span><em>stream_spec</em>, <em>cmd='ffmpeg'</em>, <em>pipe_stdin=False</em>, <em>pipe_stdout=False</em>, <em>pipe_stderr=False</em>, <em>quiet=False</em>, <em>overwrite_output=False</em><span class="sig-paren">)</span><a class="headerlink" href="#ffmpeg.run_async" title="Permalink to this definition"></a></dt>
597+
<dd><p>Asynchronously invoke ffmpeg for the supplied node graph.</p>
598+
<table class="docutils field-list" frame="void" rules="none">
599+
<col class="field-name" />
600+
<col class="field-body" />
601+
<tbody valign="top">
602+
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
603+
<li><strong>pipe_stdin</strong> – if True, connect pipe to subprocess stdin (to be
604+
used with <code class="docutils literal notranslate"><span class="pre">pipe:</span></code> ffmpeg inputs).</li>
605+
<li><strong>pipe_stdout</strong> – if True, connect pipe to subprocess stdout (to be
606+
used with <code class="docutils literal notranslate"><span class="pre">pipe:</span></code> ffmpeg outputs).</li>
607+
<li><strong>pipe_stderr</strong> – if True, connect pipe to subprocess stderr.</li>
608+
<li><strong>quiet</strong> – shorthand for setting <code class="docutils literal notranslate"><span class="pre">capture_stdout</span></code> and
609+
<code class="docutils literal notranslate"><span class="pre">capture_stderr</span></code>.</li>
610+
<li><strong>**kwargs</strong> – keyword-arguments passed to <code class="docutils literal notranslate"><span class="pre">get_args()</span></code> (e.g.
611+
<code class="docutils literal notranslate"><span class="pre">overwrite_output=True</span></code>).</li>
612+
</ul>
613+
</td>
614+
</tr>
615+
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A <a class="reference external" href="https://docs.python.org/3/library/subprocess.html#popen-objects">subprocess Popen</a> object representing the child process.</p>
616+
</td>
617+
</tr>
618+
</tbody>
619+
</table>
620+
<p class="rubric">Examples</p>
621+
<p>Run and stream input:</p>
622+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">process</span> <span class="o">=</span> <span class="p">(</span>
623+
<span class="n">ffmpeg</span>
624+
<span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="s1">&#39;pipe:&#39;</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">&#39;rawvideo&#39;</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;rgb24&#39;</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{}</span><span class="s1">x</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">))</span>
625+
<span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="n">out_filename</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;yuv420p&#39;</span><span class="p">)</span>
626+
<span class="o">.</span><span class="n">overwrite_output</span><span class="p">()</span>
627+
<span class="o">.</span><span class="n">run_async</span><span class="p">(</span><span class="n">pipe_stdin</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
628+
<span class="p">)</span>
629+
<span class="n">process</span><span class="o">.</span><span class="n">communicate</span><span class="p">(</span><span class="nb">input</span><span class="o">=</span><span class="n">input_data</span><span class="p">)</span>
630+
</pre></div>
631+
</div>
632+
<p>Run and capture output:</p>
633+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">process</span> <span class="o">=</span> <span class="p">(</span>
634+
<span class="n">ffmpeg</span>
635+
<span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="n">in_filename</span><span class="p">)</span>
636+
<span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="s1">&#39;pipe&#39;</span><span class="p">:,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">&#39;rawvideo&#39;</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;rgb24&#39;</span><span class="p">)</span>
637+
<span class="o">.</span><span class="n">run_async</span><span class="p">(</span><span class="n">pipe_stdout</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">pipe_stderr</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
638+
<span class="p">)</span>
639+
<span class="n">out</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">process</span><span class="o">.</span><span class="n">communicate</span><span class="p">()</span>
640+
</pre></div>
641+
</div>
642+
<p>Process video frame-by-frame using numpy:</p>
643+
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">process1</span> <span class="o">=</span> <span class="p">(</span>
644+
<span class="n">ffmpeg</span>
645+
<span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="n">in_filename</span><span class="p">)</span>
646+
<span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="s1">&#39;pipe:&#39;</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">&#39;rawvideo&#39;</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;rgb24&#39;</span><span class="p">)</span>
647+
<span class="o">.</span><span class="n">run_async</span><span class="p">(</span><span class="n">pipe_stdout</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
648+
<span class="p">)</span>
649+
650+
<span class="n">process2</span> <span class="o">=</span> <span class="p">(</span>
651+
<span class="n">ffmpeg</span>
652+
<span class="o">.</span><span class="n">input</span><span class="p">(</span><span class="s1">&#39;pipe:&#39;</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">&#39;rawvideo&#39;</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;rgb24&#39;</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">{}</span><span class="s1">x</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">))</span>
653+
<span class="o">.</span><span class="n">output</span><span class="p">(</span><span class="n">out_filename</span><span class="p">,</span> <span class="n">pix_fmt</span><span class="o">=</span><span class="s1">&#39;yuv420p&#39;</span><span class=& F42D quot;p">)</span>
654+
<span class="o">.</span><span class="n">overwrite_output</span><span class="p">()</span>
655+
<span class="o">.</span><span class="n">run_async</span><span class="p">(</span><span class="n">pipe_stdin</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
656+
<span class="p">)</span>
657+
658+
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
659+
<span class="n">in_bytes</span> <span class="o">=</span> <span class="n">process1</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">width</span> <span class="o">*</span> <span class="n">height</span> <span class="o">*</span> <span class="mi">3</span><span class="p">)</span>
660+
<span class="k">if</span> <span class="ow">not</span> <span class="n">in_bytes</span><span class="p">:</span>
661+
<span class="k">break</span>
662+
<span class="n">in_frame</span> <span class="o">=</span> <span class="p">(</span>
663+
<span class="n">np</span>
664+
<span class="o">.</span><span class="n">frombuffer</span><span class="p">(</span><span class="n">in_bytes</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
665+
<span class="o">.</span><span class="n">reshape</span><span class="p">([</span><span class="n">height</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span>
666+
<span class="p">)</span>
667+
<span class="n">out_frame</span> <span class="o">=</span> <span class="n">in_frame</span> <span class="o">*</span> <span class="mf">0.3</span>
668+
<span class="n">process2</span><span class="o">.</span><span class="n">stdin</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
669+
<span class="n">frame</span>
670+
<span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">uint8</span><span class="p">)</span>
671+
<span class="o">.</span><span class="n">tobytes</span><span class="p">()</span>
672+
<span class="p">)</span>
673+
674+
<span class="n">process2</span><span class="o">.</span><span class="n">stdin</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
675+
<span class="n">process1</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
676+
<span class="n">process2</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
677+
</pre></div>
678+
</div>
679+
</dd></dl>
680+
594681
<dl class="function">
595682
<dt id="ffmpeg.view">
596683
<code class="descclassname">ffmpeg.</code><code class="descname">view</code><span class="sig-paren">(</span><em>stream_spec</em>, <em>detail=False</em>, <em>filename=None</em>, <em>pipe=False</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#ffmpeg.view" title="Permalink to this definition"></a></dt>
597684
<dd></dd></dl>
598685

599686
<dl class="function">
600687
<dt id="ffmpeg.probe">
601-
<code class="descclassname">ffmpeg.</code><code class="descname">probe</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="headerlink" href="#ffmpeg.probe" title="Permalink to this definition"></a></dt>
688+
<code class="descclassname">ffmpeg.</code><code class="descname">probe</code><span class="sig-paren">(</span><em>filename</em>, <em>cmd='ffprobe'</em><span class="sig-paren">)</span><a class="headerlink" href="#ffmpeg.probe" title="Permalink to this definition"></a></dt>
602689
<dd><p>Run ffprobe on the specified file and return a JSON representation of the output.</p>
603690
<table class="docutils field-list" frame="void" rules="none">
604691
<col class="field-name" />

doc/html/objects.inv

6 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)
0