暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

FFmpeg的使用场景


点击标题下「蓝色微信名」可快速关注

最近需要从某个网站下载一个视频,但是下载出来的文件后缀是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,如果有输出信息,则证明安装配置成功了,
    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      5939.100 / 5939.100
    libavcodec     6119.101 / 6119.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只能通过命令行的操作,如下是最基础的一个指令,
      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就是转换后的,可以直接打开。

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

        -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



        如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,


        可以到各大平台找我,
        • 微信公众号:@bisal的个人杂货铺
        • 腾讯云开发者社区:@bisal的个人杂货铺
        • 头条号:@bisal的个人杂货铺
        • CSDN:@bisal
        • ITPub:@bisal
        • 墨天轮:@bisal
        • 51CTO:@bisal
        • 小红书:@bisal
        • 抖音:@bisal
        近期更新的文章:
        长安街地下通道@骑行日记
        聚焦民生,TiDB 加速政企数字化转型!6 月 14 日沈阳见!
        众志成城,踢出哪吒精神!
        MySQL中树状格式的执行计划
        足协杯16强,谁能出现在苏州?
        热文鉴赏:
        揭开"仿宋"和"仿宋_GB2312"的神秘面纱
        Linux的"aarch"是多了个"a"?
        中国队“自己的”世界杯
        你不知道的C罗-Siu庆祝动作
        大阪环球影城避坑指南和功略
        推荐一篇Oracle RAC Cache Fusion的经典论文
        "红警"游戏开源代码带给我们的震撼
        文章分类和索引:
        公众号1700篇文章分类和索引

        文章转载自bisal的个人杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论