admin管理员组

文章数量:1530975

2024年7月10日发(作者:)

python实现将m3u8格式转换为mp4视频格式

开发动机:最近用手机QQ浏览器下载了一些视频,视频越来越多,占用了手机内存,

于是想把下载的视频传到电脑上保存,可后来发现这些视频都是m3u8格式的,且这个格

式的视频都切成了碎片,存在电脑里不方便查看,于是想把它转换为其他可以直接打开播

放的完整视频,到网上找了一些工具,都不怎么好用,后来发现一个手机端的“缓冲合并

工具”,倒是可以用,但是合并的视频顺序是乱的,碎片的视频顺序还需要用户手动调整,

感觉太耽误时间了,于是自己打算写一个转换工具。

直接上代码:(程序的文件名为:convert_)

[python] view plain copy

print?

1. # -*- coding:utf-8 -*-

2. import sys

3. import os

4. from glob import glob

5. #获取需要转换的路径

6. def get_user_path(argv_dir):

7. if (argv_dir):

8. return argv_dir

9. elif (argv_dir):

10. return argv_dir

11. else:

12. return False

13. #对转换的TS文件进行排序

14. def get_sorted_ts(user_path):

15. ts_list = glob((user_path,'*.ts'))

16. #print(ts_list)

17. boxer = []

18. for ts in ts_list:

19. if (ts):

20. #print(xt(me(ts)))

21. file,_ = xt(me(ts))

22. (int(file))

23. ()

24. #print(boxer)

25. return boxer

26. #文件合并

27. def convert_m3u8(boxer,o_file_name):

28. #cmd_arg = str(ts0)+"+"+str(ts1)+" "+o_file_name

29. tmp = []

30. for ts in boxer:

31. (str(ts)+'.ts')

32. cmd_str = '+'.join(tmp)

33. exec_str = "copy /b "+cmd_str+' '+o_file_name

34. #print("copy /b "+cmd_str+' '+o_file_name)

35. (exec_str)

36. if __name__=='__main__':

37. #print([1:])

38. argv_len = len()

39. if argv_len == 3:

40. o_dir,o_file_name =[1:]

41. #print(o_dir+":"+o_file_name)

42. user_path = get_user_path(o_dir)

43. #print(user_path)

44. if not user_path:

45.

46.

47.

48.

49.

50.

51.

52.

53.

54.

55.

56.

57.

文件。

print("您输入的路径不正确,:-(");

else:

if ((user_path,o_file_name)):

print('目标文件已存在,程序停止运行。')

exit(0)

(user_path)

#convert_m3u8('','',o_file_name)

boxer = get_sorted_ts(user_path)

convert_m3u8(boxer,o_file_name)

#print(())

else:

print("参数个数非法");

注:代码不多,原理也很简单,就是把各个碎片视频按照顺序合并为一个视频

使用方法如下:

python convert_ m3u8视频的目录 要转换后文件的名字

其中第一个参数为m3u8视频的目录(m3u8的碎片视频在手机里是隐藏的,需要将

隐藏文件显示出来才可以将文件导出到电脑里,在安卓手机里将隐藏文件夹前面的.重命

名去掉就可以了),第二个参数为要转换后文件的名字。

本文标签: 视频转换文件手机碎片