您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
用ffmpeg破解下载m3u8视频自动合并ts
发布时间:2021-10-04 14:13:06编辑:雪饮阅读()
前面有讲过对于一些视频可以通过浏览器的f12中的network中给它获取下来。
但是有的时候你可能会遇到并非是常见的视频,像是m3u8,m3u8一般就只是一个类似配置文件一样,通过解析它出来的都是一些常见的如ts后缀的视频,这种情况之前也介绍过一个在线的m3u8解析下载的网站:http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html。
但是这个网站目前做的解析就是对于某些个网址就不能正常解析的。
那么基于此,这里就不用它了,其实ffmpeg除了可以通过命令行来对本地视频编解码,同样也可以对网络视频进行编解码,那么对于这种网络中常用的m3u8也是同样的。
这个m3u8资源为例,那么ffmpeg中的命令如:
ffmpeg -threads 0 -i "http://localhost/1633314632300/.local.index.m3u8" -c copy -y "D:\phpstudy_pro\blog\public\1633314632300\test3.mp4"
这里的-threads 0我觉得是可以不要的,虽然我没有尝试,但是字面理解为指定线程咯。
这样就可以自动将哪些一个个的ts视频分片合并成同一个视频了。
当然,如果懒得动手写命令,也可以推荐下面这个软件:M3U8 Downloader
我这个命令行的灵感就是来自这里的,在该软件上生成下日志,然后进入该软件的安装目录中查看日志:
━━━━━━━━━━━━━━
■M3U8 Downloader 用户日志
■2021年10月4日 11:21:42
■输入:http://localhost/1633314632300/.local.index.m3u8
■输出:D:\Downloads\Video.mp4
■FFmpeg命令:ffmpeg -threads 0 -i "http://localhost/1633314632300/.local.index.m3u8" -c copy -y -bsf:a aac_adtstoasc "D:\Downloads\Video.mp4"
━━━━━━━━━━━━━━
ffmpeg version N-81489-ga37e6dd Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 29.100 / 55. 29.100
libavcodec 57. 54.101 / 57. 54.101
libavformat 57. 48.101 / 57. 48.101
libavdevice 57. 0.102 / 57. 0.102
libavfilter 6. 57.100 / 6. 57.100
libswscale 4. 1.100 / 4. 1.100
libswresample 2. 1.100 / 2. 1.100
libpostproc 54. 0.100 / 54. 0.100
Input #0, hls,applehttp, from 'http://localhost/1633314632300/.local.index.m3u8':
Duration: 00:29:18.44, start: 1.417000, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 720x406, 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata:
variant_bitrate : 0
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
Metadata:
variant_bitrate : 0
[mp4 @ 05e0a7a0] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Last message repeated 1 times
Output #0, mp4, to 'D:\Downloads\Video.mp4':
Metadata:
encoder : Lavf57.48.101
Stream #0:0: Video: h264 (High) ([33][0][0][0] / 0x0021), yuv420p, 720x406, q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
Metadata:
variant_bitrate : 0
Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo
Metadata:
variant_bitrate : 0
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame= 2233 fps=0.0 q=-1.0 size= 5548kB time=00:01:29.30 bitrate= 509.0kbits/s speed= 178x
frame= 4672 fps=4637 q=-1.0 size= 11793kB time=00:03:06.87 bitrate= 517.0kbits/s speed= 185x
frame= 7215 fps=4786 q=-1.0 size= 18197kB time=00:04:48.60 bitrate= 516.5kbits/s speed= 191x
frame= 9591 fps=4753 q=-1.0 size= 24445kB time=00:06:23.64 bitrate= 522.0kbits/s speed= 190x
frame=11934 fps=4719 q=-1.0 size= 30208kB time=00:07:57.35 bitrate= 518.4kbits/s speed= 189x
frame=14206 fps=4676 q=-1.0 size= 36927kB time=00:09:28.23 bitrate= 532.4kbits/s speed= 187x
frame=16526 fps=4658 q=-1.0 size= 43477kB time=00:11:01.02 bitrate= 538.8kbits/s speed= 186x
frame=18962 fps=4684 q=-1.0 size= 50272kB time=00:12:38.42 bitrate= 543.0kbits/s speed= 187x
frame=21423 fps=4705 q=-1.0 size= 56565kB time=00:14:16.90 bitrate= 540.8kbits/s speed= 188x
frame=23876 fps=4725 q=-1.0 size= 62739kB time=00:15:54.98 bitrate= 538.2kbits/s speed= 189x
frame=25925 fps=4662 q=-1.0 size= 70110kB time=00:17:17.00 bitrate= 553.8kbits/s speed= 186x
frame=28175 fps=4641 q=-1.0 size= 76672kB time=00:18:47.00 bitrate= 557.3kbits/s speed= 186x
frame=30582 fps=4654 q=-1.0 size= 81171kB time=00:20:23.22 bitrate= 543.6kbits/s speed= 186x
frame=33052 fps=4667 q=-1.0 size= 87161kB time=00:22:02.07 bitrate= 540.1kbits/s speed= 187x
frame=35290 fps=4649 q=-1.0 size= 93468kB time=00:23:31.58 bitrate= 542.4kbits/s speed= 186x
frame=37650 fps=4647 q=-1.0 size= 98894kB time=00:25:05.99 bitrate= 537.9kbits/s speed= 186x
frame=39855 fps=4627 q=-1.0 size= 104792kB time=00:26:34.18 bitrate= 538.5kbits/s speed= 185x
frame=42531 fps=4663 q=-1.0 size= 111589kB time=00:28:21.23 bitrate= 537.3kbits/s speed= 187x
frame=43961 fps=4658 q=-1.0 Lsize= 116840kB time=00:29:18.54 bitrate= 544.3kbits/s speed= 186x
video:102137kB audio:13801kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.777694%
然后得到的研究结果
关键字词:ffmpeg,m3u8,ts,合并,破解
相关文章
- phpunit断言-assertFileExists
- phpunit断言-assertDirectoryExists
- phpunit断言assertStringContainsStringIgnoringCase
- phpunit断言-assertStringContainsString
- phpunit跳过测试与markTestSkipped
- phpunit测试执行期间产生的输出-被测试代码及beStrict
- phpunit中testsuite配置的file模式
- phpunit参数testsuite的使用
- phpunit生命周期(钩子)assertPreConditions、assertPo
- phpunit测试的依赖关系(depends)及assertEmpty,assert