基于ffmpeg的播放器的cython实现。

ffpyplayer的Python项目详细描述


ffpyplayer是ffmpeg库的一个python绑定,用于播放和编写 媒体文件。

有关详细信息:http://matham.github.io/ffpyplayer/index.html

安装:http://matham.github.io/ffpyplayer/installation.html

TravisCI statusAppveyor statusSupported Python versionsLatest Version on PyPI

警告

尽管ffpyplayer源代码是在lgpl下授权的,但是ffpyplayer控制盘 对于pypi上的windows和linux,是在gpl下分发的,因为包含的ffmpeg二进制文件 是用gpl选项编译的。

如果你想在lgpl下使用它,你需要用正确的选项自己编译ffmpeg。

类似地,wheels将openssl捆绑在一起,用于在线摄像机支持。但是,没有发布 对于每一个openssl版本,建议您自己编译ffpyplayer 是个问题。

用法示例

播放文件:

>>>fromffpyplayer.playerimportMediaPlayer>>>importtime>>>player=MediaPlayer(filename)>>>val=''>>>whileval!='eof':...frame,val=player.get_frame()...ifval!='eof'andframeisnotNone:...img,t=frame...# display img

编写视频文件:

>>>fromffpyplayer.writerimportMediaWriter>>>fromffpyplayer.picimportImage>>>w,h=640,480>>># write at 5 fps.>>>out_opts={'pix_fmt_in':'rgb24','width_in':w,'height_in':h,...'codec':'rawvideo','frame_rate':(5,1)}>>>writer=MediaWriter('output.avi',[out_opts])>>># Construct image>>>size=w*h*3>>>buf=bytearray([int(x*255/size)forxinrange(size)])>>>img=Image(plane_buffers=[buf],pix_fmt='rgb24',size=(w,h))>>>foriinrange(20):...writer.write_frame(img=img,pts=i/5.,stream=0)

转换图像:

>>>fromffpyplayer.picimportImage,SWScale>>>w,h=500,100>>>size=w*h*3>>>buf=bytearray([int(x*255/size)forxinrange(size)])>>>img=Image(plane_buffers=[buf],pix_fmt='rgb24',size=(w,h))>>>sws=SWScale(w,h,img.get_pixel_format(),ofmt='yuv420p')>>>img2=sws.scale(img)>>>img2.get_pixel_format()'yuv420p'>>>planes=img2.to_bytearray()>>>map(len,planes)[50000,12500,12500,0]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于测试失败,java testcontainers maven构建失败   java实现jacobi算法实现laplace方程   java中的多线程:如何在不等待所有线程使用ExecutorService完成任务的情况下终止所有线程的执行?   java Hello World不在Android Studio 3中工作   ubuntu Tomcat7的Java版本不正确   java Javafx内存泄漏   对于手动实现的Spring数据存储库方法,我应该使用Java8默认方法吗?   googleappengine中的java添加过滤查询   html当使用JSOUP库在Java中读取标签时,如何保留标签(如<br>、<ul>、<li>、<p>等)的含义?   编码为什么jasper生成的报告在Java中不显示西里尔语(保加利亚语)?   java有没有办法隐藏当前位置和jdk动作?   java找出编译原型文件的版本   有没有办法在运行时更改java方法的访问修饰符?   语法字符串。。。Java中的参数   java数组元素在添加其他元素时会相互覆盖   eclipse中的java GWT项目   java如何为spring rest模板请求将动态json属性名映射到jackson   java无法在Windows 10上找到特定的JDK   在xml字符串和java字符串之间提取正则表达式子字符串