首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >FFmpeg的使用场景

FFmpeg的使用场景

作者头像
bisal
发布2025-06-11 14:25:09
发布2025-06-11 14:25:09
20100
代码可运行
举报
运行总次数:0
代码可运行

最近需要从某个网站下载一个视频,但是下载出来的文件后缀是m3u8,

图片
图片

这是什么文件?

m3u8文件是m3u(MP3 URL,MP3地址)文件的Unicode(统一编码)版本。m3u8中的"8"代表UTF-8编码,这是目前网络通信中最常见的全球通用编码标准。

m3u8的文件怎么转成常用的mp4格式?

FFmpeg是其中的一种解决方案。FFmpeg是一个免费的开源程序库,一个命令行工具软件,专门用来编辑处理各种音视频或图像。

它的使用,还是有些技巧的。

1. 下载安装文件

进入官网:https://ffmpeg.org/,点击Download,

图片
图片

如果是Windows的平台,可以选择任意一个下载源,

图片
图片

选择左侧的"release builds",release-full和xxx-full_build这两个都行,xxx-full_build是release-full之前的版本,如果选择尽量找个最近的稳定版本,否则直接用release-full就行,

图片
图片

同一个版本带shared的和不带shared的,功能是完全一样的,选谁都可以。区别是,带shared的里面,多了include、lib目录,FFmpeg依赖的模块包单独的放在的lib目录中,ffmpeg.exe,ffplay.exe,ffprobe.exe作为可执行文件的入口,文件体积很小,他们在运行的时候,如果需要,会到lib中调用相应的功能,

图片
图片

不带shared的里面,bin目录中有ffmpeg.exe,ffplay.exe,ffprobe.exe三个可执行文件,每个exe的体积都稍大一点,因为它已经将相关的需要用的模块包编译到exe,

图片
图片

2. 部署安装文件

复制bin路径,

图片
图片

在系统的环境变量中,向Path增加bin路径,

图片
图片

打开命令行,输入指令ffmpeg -version,如果有输出信息,则证明安装配置成功了,

代码语言:javascript
代码运行次数:0
运行
复制
C:\Users\admin>ffmpeg -version
ffmpeg version 7.1.1-full_build-www.gyan.dev Copyright (c) 2000-2025 the FFmpeg developers
built with gcc 14.2.0 (Rev1, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-lcms2 --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-libdvdnav --enable-libdvdread --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-liblc3 --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil      59. 39.100 / 59. 39.100
libavcodec     61. 19.101 / 61. 19.101
libavformat    61.  7.100 / 61.  7.100
libavdevice    61.  3.100 / 61.  3.100
libavfilter    10.  4.100 / 10.  4.100
libswscale      8.  3.100 /  8.  3.100
libswresample   5.  3.100 /  5.  3.100
libpostproc    58.  3.100 / 58.  3.100

3. 使用

ffmpeg只能通过命令行的操作,如下是最基础的一个指令,

代码语言:javascript
代码运行次数:0
运行
复制
C:\Users\admin>ffmpeg -i "https://newcntv.qcloudcdn.com/asp/hls/main/0303000a/3/default/d7253778b710491398e368e64f3b6150/main.m3u8?maxbr=1000" -c copy output.mp4

其中,

  • -i:指定输入源(m3u8文件路径或URL)
  • -c copy:直接复制原始流(不重新编码),速度最快且无损质量
  • output.mp4:输出文件名

output.mp4就是转换后的,可以直接打开。

但是我这生成的文件分辨率很低,和网页原版的质量相差甚远,虽然尝试增加一些指定分辨率的参数,但是作用有限,

代码语言:javascript
代码运行次数:0
运行
复制
-crf 18:画质核心参数(0=无损,18~22=高清,23~28=普通,默认23)
-preset slow:编码速度越慢质量越高(可选:medium > slow > slower > veryslow)
-vf "scale=1920:-2":升级到1080p(保持原始比例,-2确保高度为偶数)
-movflags +faststart:优化网络播放

查了一些资料,有可能是源文件质量低(从网页上看,质量很高,应该不是这原因)、参数设置不当以及分片缺失等(这个倒是有可能),因此,还需要进一步研究下。

参考资料:

https://www.cnblogs.com/wwwwariana/p/18191233

https://www.gyan.dev/ffmpeg/builds/#release-builds

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bisal的个人杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档