普通视图

发现新文章,点击刷新页面。
昨天以前首页

如何获取视频的LUFS(响度单位)?通过视频文件测量视频音量响度水平

2025年3月3日 17:54
这篇文章介绍了视频音量的重要性及其调整方法。文中提到,视频音量过低会影响观看体验,特别是在信息流中与其他大声视频竞争时。为了解决这一问题,文章引入了LUFS(Loudness Units Full Scale)作为衡量音频响度的标准,并解释了其在广播和流媒体中的应用。作者推荐使用ffmpeg工具来测量视频的LUFS值,并提供了具体的操作命令和参数说明。最后,文章还详细解读了测量结果中各项参数的意义,帮助用户更好地调整视频音量以符合不同平台的要求。

m3u8 downloader [25.02.20][Windows]

2025年2月22日 22:43

图依然是AI的,预计周四去拍写真。

更新记录:
1.修复独狼说的那个网站的资源下载
2.修复https证书错误提示

参数说明:
Microsoft Windows [版本 10.0.22631.4890]
(c) Microsoft Corporation。保留所有权利。

C:\Users\obaby>E:\Pycharm_Projects\m3u8_downloader\dist\m3u8_downloader\m3u8_downloader.exe
****************************************************************************************************
       _           _             ____
  ___ | |__   __ _| |__  _   _  / __ \ _ __ ___   __ _ _ __ ___
 / _ \| '_ \ / _` | '_ \| | | |/ / _` | '_ ` _ \ / _` | '__/ __|
| (_) | |_) | (_| | |_) | |_| | | (_| | | | | | | (_| | |  \__ \
 \___/|_.__/ \__,_|_.__/ \__, |\ \__,_|_| |_| |_|\__,_|_|  |___/
                         |___/  \____/

m3u8 downloader by obaby
Verson: 25.02.20
m3u8_downloader -i <input m3u8 link> -o <output file> -p <out put path> -f <input file> -m <ffmpeg path>
Need Arguments:
         -i <input m3u8 link>
Option Arguments:
         -o <output file> -p <out put path> -f <input file>
         -m <ffmpeg path>
ffmpeg:E:\Pycharm_Projects\m3u8_downloader\dist\m3u8_downloader\bin/ffmpeg.exe
Blog: http://oba.by
      http://www.h4ck.org.cn
Source Code: http://h4ck.org.cn/2020/01/基于ffmpeg的m3u8下载/
****************************************************************************************************

下载效果:

****************************************************************************************************
[D] 下载文件......
[D] 文件路径:E:\Pycharm_Projects\m3u8_downloader\mp4\每日大赛之AI换脸明星明星已不是梦AI换脸让大家都完成儿时梦想--911爆料-红领巾吃瓜网成人黑料吃瓜每日大赛看片911blw.com-4.mp4
E:\Pycharm_Projects\m3u8_downloader\dist\m3u8_downloader\bin/ffmpeg.exe -protocol_whitelist "file,http,crypto,tcp,https,tls"  -i "https://hls.vdtuzv.com/videos4/55511a428b09e8266ccc4c26052c41fe/55511a428b09e8266ccc4c26052c41fe.m3u8?auth_key=1740233852-67b9dc7c50e1e-0-c642b03cbb6edc19f1607328047a21a0&v=3&time=0" -c copy "E:\Pycharm_Projects\m3u8_downloader\mp4\每日大赛之AI换脸明星明星被操已不是梦AI换脸让大家都完成儿时梦想--911爆料-红领巾吃瓜网成人黑料吃瓜每日大赛看片911blw.com-4.mp4"
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.1 (GCC) 20200726
  configuration: --disable-static --enable-shared --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --enable-librav1e --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[hls @ 0000022cda7a4d00] Skip ('#EXT-X-VERSION:3')
[hls @ 0000022cda7a4d00] Opening 'https://tp3.numbyg.cn/videos4/55511a428b09e8266ccc4c26052c41fe/crypt.key?auth_key=1740235093-91-0-1d39415610ab0f6be656dcfc352f23ee' for reading
[hls @ 0000022cda7a4d00] Opening 'crypto+https://tp3.numbyg.cn/videos4/55511a428b09e8266ccc4c26052c41fe/55511a428b09e8266ccc4c26052c41fe0.ts?auth_key=1740235093-91-0-88a01d83c48b90308c2e746985315b7c' for reading
Input #0, hls, from 'https://hls.vdtuzv.com/videos4/55511a428b09e8266ccc4c26052c41fe/55511a428b09e8266ccc4c26052c41fe.m3u8?auth_key=1740233852-67b9dc7c50e1e-0-c642b03cbb6edc19f1607328047a21a0&v=3&time=0':
  Duration: 00:15:32.62, start: 1.433333, bitrate: 0 kb/s
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1280x720, 30 fps, 30 tbr, 90k tbn, 180k tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'E:\Pycharm_Projects\m3u8_downloader\mp4\每日大赛之AI换脸明星明星已不是梦AI换脸让大家都完成儿时梦想--911爆料-红领巾吃瓜网成人黑料吃瓜每日大赛看片911blw.com-4.mp4':

更新代码:

def get_bl05_m3u8_link(url):
    print('_' * 70)
    print('[A] 解析播放地址......')
    html_doc = get_url_source_code(url)
    bs = BeautifulSoup(html_doc, "html.parser")
    pattern = re.compile(r"var cms_player = {(.*?);$", re.MULTILINE | re.DOTALL)
    player_divs = bs.findAll('div', class_='dplayer')
    m3u8_list= []
    for p in player_divs:
        data_config = p.get('data-config')
        json_data = json.loads(data_config)
        if 'url' in json_data:
            m3u8_link = json_data['url']
        else:
            m3u8_link = json_data['video']['url']
        title = bs.title.string
        print('[A] 标题:' + title)
        print('[A] 播放地址:' + m3u8_link)
        m3u8_list.append({'title':title,
                          'link':m3u8_link})
        print('_' * 70)
    return m3u8_list

下载地址:

温馨提示: 此处隐藏内容需要发表评论,并且审核通过后才能查看。
(发表评论请勾选 在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
(请仔细检查自己的昵称和评论内容,以免被识别为垃圾评论而导致无法正常审核。)

如何在不同操作系统上安装和使用 FFmpeg?macOS、Windows、Ubuntu、CentOS安装ffmpeg教程

2025年1月16日 16:14
这篇文章介绍了如何在不同操作系统上安装和使用 FFmpeg。文章详细说明了在 macOS、Windows、Ubuntu 和 CentOS 上安装 FFmpeg 的步骤,包括使用 Homebrew、APT、YUM 或手动下载的方式。每个操作系统的安装过程都配有具体命令,并提供了验证安装是否成功的方法。此外,文章还介绍了 FFmpeg 的基本使用方法,如转换视频格式和提取音频,为用户提供了简单易懂的指南,帮助读者顺利安装并使用 FFmpeg。

如何使用ffmpeg处理ProRes视频进行视频旋转?ProRes视频旋转教程

2025年1月16日 15:48
这篇文章介绍了如何使用FFmpeg处理ProRes视频进行旋转。文章首先分析了ProRes和H.264的编码差异,解释了为什么ProRes视频在旋转时需要重新编码,而H.264则通过修改元数据就能实现旋转。然后,作者提供了FFmpeg的命令行操作方法,通过指定旋转参数和输出格式,来实现ProRes视频的旋转,同时保持视频质量。文章还解答了常见问题,如旋转后文件大小变化,并提醒用户如果需要固定码率或编码格式,需额外设置参数。

如何几乎不损失视频画质而大幅度压缩视频?来试试VBR可变比特率吧!

2024年12月10日 17:09
这篇文章介绍了如何通过可变比特率(VBR)技术实现高效视频压缩,同时保持画质优良。VBR根据内容复杂度动态调整比特率,复杂场景用更多比特率,简单场景用更少,既提升质量又节省空间。文章推荐使用FFmpeg,详细说明了关键参数如恒定质量因子(CRF)和最大比特率的设置,并介绍两遍编码技术以精确控制文件大小。此外,还提到格式工厂作为无需代码操作的替代工具。总结来看,VBR结合FFmpeg既满足高画质需求,又兼顾存储效率,是处理视频的理想选择。

使用ffmpeg处理YCbCr422(YUV422-10bit)格式的视频信号

2024年8月4日 15:57

最近搞的项目跟视频采集卡有关。客户的要求是采集的时候视频卡信号要设成YCbCr42210bit格式,从板卡上采集到的图像要将这个原始格式不压缩直接保存成mov文件。另外要能读取自己保存的mov文件,在板卡上播放。
然后我的猪队友同事们给我甩来两个课题:
一是没用明白windows的SinkWriter,非说人家巨硬不支持这种yuv42210bit的保存。
二是视频的连续播放,只能把mov文件拆成一帧一帧,把原始数据喂给板卡。但是之前抄的例子是8bityuv,10bit的不会弄,而先转成bmp再转yuv422的话误差太大。

这一看就不是我能手搓出来的事儿,跟客户申请之后,客户表示可以用ffmpeg的命令行(因为GPL,不能用库的方式使用)。
于是我要处理的两个问题如下:
(一)将YUV422-10bit的原始数据(raw)保存成mov
(二)从自己保存的mov中抽取每一帧的原始数据。

一番搜索之下终于给对付上了。这个格式就挺恶心,ffmpeg的官网更恶心。官网上洋洋洒洒50章,每个参数都说到了,例子却寥寥无几,专有名词一大堆,给人一种生人勿进的的错觉。

将yuv422-10bit的原始数据转成非压缩mov

  • 命令行:
  • ffmpeg -f image2pipe \
           -frame_size 5529600 \
           -vcodec v210 \
           -pix_fmt yuv422p10le \
           -s 1920x1080 \
           -r 60000/1001 \
           -i fromcard.raw \
           -c:v v210 \
           -an -sn \
           result.mov
    

    逐个解释一下各参数的设置

  • -f image2pipe
  • 输入文件的format。这里的format是ffmpeg的demuxer的格式,可以通过ffmpeg -demuxers进行查看。输入原始数据的时候本来应该用rawvideo。但是ffmpeg在处理yuv42210p的原始数据的时候有一个非常奇怪的bug:在计算每一帧数据空间的时候,ffmpeg认为一帧数据的大小是宽*高*4。但是yuv42210p系列的格式,每16个byte里包括6个像素点的信息而不是4个,这就造成了用rawvideo生成的图像会丢失1/4的帧的奇怪现象。ffmpge的官网上曾经记录过这个issue,貌似他们没改好啊。我的这个解决办法实际是在issue的回复里找到的。image2pipe是一种通用的流格式,这里利用了它必须指定帧宽的特性。

  • -frame_size 5529600
  • 与image2pipe配合使用,指定每一帧的大小。5529600=1920x1080x16/6,其余分辨率自己算。注意如果raw不能被这个size整除,会报成信道不足的奇怪错误。

  • -vcodec v210
  • 输入使用的解码器。可以大致理解为YCbCr42210bit≈yuv422p10≈v210。v210就是这种格式的FCC码。

  • -pix_fmt yuv422p10le
  • 输入文件的图形格式,yuv422p10le使用16个字节(128bit)描述相邻的6个像素点,并且每32bit按照小字节序反转。反正就是搞清板卡设置的格式,按是否是小端字节序来觉得是否加最后面的“le”

  • -s 1920×1080
  • 输入图像的分辨率

  • -r 60000/1001
  • 相当于帧率(fps)。如果生成的帧率是整数,可以直接写。但如果帧率是小数,比如59.94,就要写成timescale/duration的形式。

  • -i fromcard.raw
  • 输入文件。我这里是把所有的帧存到了一起,放在同一文件里。

  • -c:v v210
  • 输出文件的视频编码器。因为这个参是要设输出文件,所以一定要放在-i的后面。

  • -an
  • 无音频流。

  • -sn
  • 无字幕流。

  • result.mov
  • 输出文件。

    如果需要存成隔行信号的文件,要在-i后面加一组参

    -vf tinterlace=interleave_top,fieldorder=tff
    

    顶场底场/奇数先偶数先其实有4种排列组合。但是自己编自己解,FFMPEG都能搞定,就不具体说明区别了。

    从mov中抽取每一帧的原始数据

  • 命令行:
  • ffmpeg -i input.mov -c:v v210 frame_%04d.raw
    

    同样逐个参数解释:

  • -i input.mov
  • 输入的mov文件。

  • -c:v v210
  • 输出文件的图像编码格式。与之前相同。其实这个参数是无视输入格式本身的。如果是本篇中的例子,输入与输出的图像相同,那就没有产生转换;如果不同,则ffmpeg会自动将原始格式转为这个参指定的图像编码格式,非常智能。

  • frame_%04d.raw
  • 输出文件。ffmpeg是根据输出文件的扩展名来自动识别输出格式的。想要原始数据,就必须指定成.raw为扩展名。如果不加%d,ffmpeg就会把所有帧存成一大坨文件保存;加了%d,就是逐帧分开保存。

    如果上面生成了隔行文件,那么这里也要增加一组参数

    -filter:v yadif=1

    否则解出来的帧数就会少一半。

    搞定!


    • (1):不像《侍魂》和《天外魔境》那样还需要把武器拾回来,而是每个人的武器都能飞去来。
    ❌
    ❌