惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
量子位
The Cloudflare Blog
博客园 - Franky
博客园 - 聂微东
博客园 - 司徒正美
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
罗磊的独立博客
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MongoDB | Blog
MongoDB | Blog

FFmpeg

[FFmpeg 的实时性太糟糕了] 后续 intel qsv ffmpeg 编码问题 FFmpeg 的实时性太糟糕了 早就听说过 ffmpeg,但是一直不知道有多牛 使用 FFmpeg 和 GPU 实现最简“图片+无损音频=视频”的方法 FFmpegKit has been officially retired. There will be no further ffmpeg-kit releases. 有没有精通 ffmpeg 的大佬帮我看下这个视频是怎么制作的 使用 FFmpeg 试图做个人用的转码点播服务端, 但 mpegts 多个切片间音频偶尔不连续? 求助大佬们, FFmpeg 指令拉实时流转推的正确姿势到底是什么? 在几乎不损失画质的前提下,怎么用 ffmpeg 把 h.264 格式的视频转换成 h.265 格式的? 我又来询问 ffmpeg 问题了!这次是硬件加速! 大佬们, nodejs 和 Python 做类似 jellyfin 实时转码是不是只能用 ffmpeg 实现了 有大佬开发过 ffmpeg 吗?用 c++调用 ffmpeg API 解码视频流 CPU 占用率高,求解决办法 ffmpeg 视频录制切分问题请教 通过 ffmpeg 压缩视频很慢 时间敏感的需求该怎么设置参数呢? 请教一个关于 ffmpeg 的问题 如何下载官方的 ffmpeg 二进制发布 视频模板替换图片,有偿 ffmpeg 过滤器 xfade 自定义动画的研究 关于我在 fcp 导入视频时出现的无法解决的问题,请求各位 ffmpeg 大佬的帮忙 go + ffmpeg pipe 怎么确定当前转码操作已经结束,可以停了 给人声视频加入背景声音,如何做到自动调整背景的音量 使用 ffmpeg 用 aes 加密 m3u8 文件的疑惑 把歌曲压缩至 7 kbps, FFmpeg 之父发布音频压缩工具 TSAC 求助使用 ffmpeg 压缩.mov 视频输出后丢失元数据问题如何解决 homebrew 安装的 fmpeg 转码速度比较慢?直接编译可以提高速度吗? 使用 nodejs 调用和在 macos 终端里直接调用 ffmpeg 转 m3u8,两者花费时间相差巨大 FFmpeg 如何录屏时排除录制指定的某个窗口 ffmpeg 最近大版本发布为啥这么快 ffmpeg 如何加快解码速度?算力不变的情况下,不在乎解码质量
ffmpeg 处理后视频时长问题
henix · 2024-11-20 · via FFmpeg

用 ffmpeg -t 将一个 10s 的视频剪裁到 3s 后,播放时长没问题,但是放进 concat 过滤器,这个视频片段占用的长度仍为原长度 10s ,后面 7s 表现为最后一帧静止画面。尝试了各种方法都不行,还望大神赐教。

问题详细描述:

1. 用完全重编码的方法将一个 10s 的视频转换为 3.971s 并去掉音频:

ffmpeg -t 3.971 -i "加载.mp4" -c:v libx264 -tune animation -crf 1 -an loading.mp4

ffprobe 结果文件 loading.mp4 如下:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'loading.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf61.7.100
  Duration: 00:00:03.98, start: 0.000000, bitrate: 49072 kb/s
  Stream #0:0[0x1](eng): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 49068 kb/s, 60 fps, 60 tbr, 15360 tbn (default)
      Metadata:
        handler_name    : ?Mainconcept Video Media Handler
        vendor_id       : [0][0][0][0]
        encoder         : Lavc61.19.100 libx264

疑点:时长为 3.98 ,已经不精确?

原始视频的 ffprobe ,是不是原始视频有什么不正常:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '加载.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41
    creation_time   : 2022-03-26T12:31:39.000000Z
  Duration: 00:00:10.00, start: 0.000000, bitrate: 9763 kb/s
  Stream #0:0[0x1](eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 9395 kb/s, 60 fps, 60 tbr, 60k tbn (default)
      Metadata:
        creation_time   : 2022-03-26T12:31:39.000000Z
        handler_name    : ?Mainconcept Video Media Handler
        vendor_id       : [0][0][0][0]
        encoder         : AVC Coding
  Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
      Metadata:
        creation_time   : 2022-03-26T12:31:40.000000Z
        handler_name    : #Mainconcept MP4 Sound Media Handler
        vendor_id       : [0][0][0][0]

2. 将一个 webm 视频 overlay 到上述视频上,并加入音频,且音视频都重编码:

疑点:webm 视频的时长显示为 N/A ,但实际为 3.5s 左右

用了 -filter_complex chromakey,scale;overlay

结果的 ffprobe 如下:

Input #0, matroska,webm, from 'opening.mkv':
  Metadata:
    COMPATIBLE_BRANDS: isomiso2avc1mp41
    MAJOR_BRAND     : isom
    MINOR_VERSION   : 512
    ENCODER         : Lavf61.7.100
  Duration: 00:00:03.98, start: 0.000000, bitrate: 70572 kb/s
  Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv420p(tv, bt709, progressive), 1920x1080, 60 fps, 60 tbr, 1k tbn
      Metadata:
        ENCODER         : Lavc61.19.100 libx264
        DURATION        : 00:00:03.984000000
  Stream #0:1: Audio: flac, 44100 Hz, stereo, s16
      Metadata:
        ENCODER         : Lavc61.19.100 flac
        DURATION        : 00:00:03.970000000

这一步结果视频长度 3.984s

3. 将上一步的结果用 concat 加到另外两个视频流的中间:

-filter_complex
    "[10:v]trim=0:3.97[t10v]",
    "[10:a]atrim=0:3.97[t10a]",
    "[fv1t][fa1t][t10v][t10a][fv2t][fa2t]concat=3:1:1",

其中 "[10]" 代表上一步结果的视频流和音频流,已经用 trim 处理

结果:在生成的文件中,这一段的实际占用时间为 10s ,而不是我需要的 3.971s ,后面 7s 是最后一帧静止画面和静音。