首页 > 编程语言 >python调用ffmpeg循环播放一个文件夹内的视频,如果播放中断了,下次继续播放可以从上次播放的视频的中断的位置进行播放

python调用ffmpeg循环播放一个文件夹内的视频,如果播放中断了,下次继续播放可以从上次播放的视频的中断的位置进行播放

时间:2023-11-16 15:13:39浏览次数:32  
标签:__ 视频 idx 中断 path folder 播放

import os
import subprocess
def play_videos_in_folder(folder_path):
    # 获取所有视频文件
    files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if f.endswith(('.mp4', '.mkv'))]
    idx = 0  # 视频文件索引
    while True:
        try:
            # 播放视频
            cmd = ['ffmpeg', '-i', files[idx], '-c', 'copy', '-f', 'mp4', 'pipe:1']
            proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
            # 读取stdout中的视频流并播放
            while True:
                raw = proc.stdout.read(1024)
                if not raw:
                    break
                # 这里可以选择将raw写入视频播放器来实现播放
                print(raw)
            # 视频播放结束则轮播下一个文件
            idx = (idx + 1) % len(files)
        except KeyboardInterrupt:
            # 如果中断播放,则记录当前播放的位置
            pos = proc.stdout.tell()
            with open('resume_position.txt', 'w') as f:
                f.write(f'{idx},{pos}')
            proc.kill()
            break
        except:
            idx = (idx + 1) % len(files)
            continue
if __name__ == '__main__':
    folder_path = 'video_folder_path'
    play_videos_in_folder(folder_path)

标签:__,视频,idx,中断,path,folder,播放
From: https://www.cnblogs.com/qcy-blog/p/17836281.html

相关文章

  • 视频直播系统源码,自定义背景和状态管理
    视频直播系统源码,自定义背景和状态管理1.源码 Future<T>showModalBottomSheet<T>({  @requiredBuildContextcontext,  @requiredWidgetBuilderbuilder,  ColorbackgroundColor,  //面板背景颜色  doubleelevation,  ShapeBordershape,  Clipcl......
  • blob:http Status Code: 206 Partial Content 视频去水印
       从视频中删除水印-免费擦除徽标和日期https://online-video-cutter.com/cn/remove-logo#google_vignetteStatusCode:206PartialContentblob:https://online-video-cutter.com/461afc6a-9e64-45ca-9276-4f9489bde7f7  视频去水印先上传再选区域  ......
  • 第8期ThreadX视频教程:应用实战,将裸机工程移植到RTOS的任务划分,驱动和应用层交互,中断DM
     这个是我们初学RTOS面临的最直接问题,很多时候,简单的RTOS机制明白了,API也会调用了,就是添加到RTOS后,总感觉那里不对劲,怎么使用才是正确姿势。针对这些问题,本期视频教程,我们ThreadX内核教程穿插一期实战应用。使用RTOS要充分发挥其高效的多任务管理机制和实时性,这样也是我们采用RTOS......
  • SDL2+FFmpeg5.0播放视频文件
    一、概述上一节使用SDL2播放了YUV视频文件,本节使用SDL2+FFmpeg5.0播放一个视频文件(只播放视频,不播放声音)播放效果图: 二、代码示例#include"sdl_ffmpeg_play.h"//sdl刷新事件#defineSFM_REFRESH_EVENT(SDL_USEREVENT+1)//sdl退出事件#defineSFM_BREAK......
  • 微信团队分享:详解iOS版微信视频号直播中因帧率异常导致的功耗问题
    本文由微信客户端团队rhythm分享,原题“视频号直播:如何进一步降低功耗占用?”,本文有修订和改动。1、引言功耗优化一直是app性能优化中让人头疼的问题,尤其是在直播这种用户观看时长特别久的场景。怎样能在不影响主体验的前提下,进一步优化微信iOS端视频号直播的功耗占用,本文给出......
  • 成功实现FaceTime语音,FaceTime视频,FaceTime数据筛选,检测手机号是否开通FaceTime的
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署......
  • 关于大学生短视频平台使用情况调查
    大学生短视频平台使用情况调查报告 一、调查背景近年来,短视频行业在蓬勃发展,相比传统的图文,短视频不仅同样具有轻量化的特点,而且信息量大、表现力强、直观性好。人们利用碎片时间浏览短视频,并且通过弹幕、评论、分享进行社交互动,让短视频具备了病毒式传播潜力,大大增加了短视频......
  • 2023全球智能汽车AI挑战赛——赛道二:智能驾驶汽车虚拟仿真视频数据理解赛道
    赛题:智能驾驶汽车虚拟仿真视频数据理解赛道任务:输入:元宇宙仿真平台生成的前视摄像头虚拟视频数据(8-10秒左右);输出:对视频中的信息进行综合理解,以指定的json文件格式,按照数据说明中的关键词(key)填充描述型的文本信息(value,中文/英文均可以)初赛提交格式:{"author":"abc","time":"YY......
  • WorkPlus Meet视频会议系统,可私有化部署,保障内部数据安全
    WorkPlusMeet作为一款私有化音视频会议平台,具有高度安全性和部署灵活性,能够根据参会人数进行灵活的调配,这样企业可以有效控制会议成本,避免资源浪费。同时,WorkPlusMeet平台支持多种功能,满足不同场景下的视频会议需求。其中包括屏幕共享功能,可以让与会人员方便地分享自己的屏幕内容......
  • 视频集中存储/云存储平台EasyCVR级联下级平台的详细步骤
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能......