使用FFmpeg合并播放UC浏览器下载的视频文件

⌚Time: 2023-04-14 16:05:43

👨‍💻Author: Jack Ge

使用安卓UC浏览器可以缓存网路上的视频文件,在UCDownloads/VideoData/文件夹下,一般有一个m3u8文件和类似1674154522694这种数字文件夹,里面储存的是被分割的ts格式视频文件

打开m3u8文件,里面的内容是储存在安卓系统视频片段的绝对路径


#EXTM3U

#EXT-X-OLAYLIST-TYPE:VOD

#EXT-X-TARGENTDURATION:8

#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:4

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/0

#EXTINF:6

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/1

#EXTINF:4

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/2

#EXTINF:4

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/3

#EXTINF:3

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/4

#EXTINF:4

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/5

#EXTINF:4

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/6

#EXTINF:3

file://storage/emulated/0/UCDownloads/VideoData/1674154522694/7

需要将它们替换为电脑上储存文件的路径

替换后的m3u8文件


#EXTM3U

#EXT-X-OLAYLIST-TYPE:VOD

#EXT-X-TARGENTDURATION:8

#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:4

D:\test\1674154522694/0

#EXTINF:6

D:\test\1674154522694/1

#EXTINF:4

D:\test\1674154522694/2

#EXTINF:4

D:\test\1674154522694/3

#EXTINF:3

D:\test\1674154522694/4

#EXTINF:4

D:\test\1674154522694/5

#EXTINF:4

D:\test\1674154522694/6

#EXTINF:3

D:\test\1674154522694/7

之后使用ffmpeg将m3u8文件生成视频


ffmpeg -allowed_extensions ALL -i D:\test\video.m3u8 -c copy video.mp4

-allowed_extensions ALL 由于FFmpeg任意文件读取漏洞,官方屏蔽掉了没有后缀名的ts文件,加上这个参数才可以正常读取本地的ts文件


[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/464' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/465' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/466' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/467' for reading7.6kbits/s speed=45.1x

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/468' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/469' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/470' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/471' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/472' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/473' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/474' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/475' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/476' for reading5.4kbits/s speed=45.4x

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/477' for reading

[hls @ 000001b5aca53b40] Opening 'D:\test\1674154522694/478' for reading

frame=47915 fps=1143 q=-1.0 Lsize=  195290kB time=00:31:56.57 bitrate= 834.7kbits/s speed=45.7x

video:163681kB audio:30587kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.526372%