2013-08-02 18 views
12

Ho un file video locale (un .avi, ma potrebbe essere convertito) che mi piacerebbe mostrare un client (cioè è privato e non può essere pubblicato sul web), ma non riesco a capire fuori come giocarlo nel notebook IPython.Come posso riprodurre un video locale nel mio notebook IPython?

Dopo un po 'su Google sembra che forse il tag HTML5 sia la strada da percorrere, ma non conosco alcun codice HTML e non riesco a farlo funzionare.

Qualche idea su come posso incorporare questo?

risposta

12

dovete leggere il video in memoria e base64 codificare, dal momento che il Notebook IPython non è un file server statico:

import io 
import base64 
from IPython.display import HTML 

video = io.open('test.mp4', 'r+b').read() 
encoded = base64.b64encode(video) 
HTML(data='''<video alt="test" controls> 
       <source src="data:video/mp4;base64,{0}" type="video/mp4" /> 
      </video>'''.format(encoded.decode('ascii'))) 
18

Gioca come un video HTML5:]

from IPython.display import HTML

HTML(""" 
<video width="320" height="240" controls> 
    <source src="path/to/your.mp4" type="video/mp4"> 
</video> 
""") 

UPDATE

Inoltre, l'uso di una cella di magia:

%%HTML 
<video width="320" height="240" controls> 
    <source src="path/to/your.mp4" type="video/mp4"> 
</video> 

e lo stesso vale per l'audio troppo

%%HTML 
<audio controls> 
    <source src="AUDIO-FILE.mp3"> 
</audio> 

enter image description here

+0

Questo non funziona davvero per me. Ho un'anteprima video nera e il gioco è fatto. Forse manca la codifica 'base64'? – Atcold

+0

mmm, qual è il formato video? questo può essere un po 'complicato. –

+0

È un MP4. Nulla di bello. – Atcold

0

from IPython.display import HTML 
 

 
# Youtube 
 
HTML('<iframe width="560" height="315" src="https://www.youtube.com/embed/S_f2qV2_U00?rel=0&amp;controls=0&amp;showinfo=0" frameborder="0" allowfullscreen></iframe>')

Problemi correlati