- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试合并两个音频文件,并延迟第二个。这是我的命令
ffmpeg -i RTb295d0534191e1acb22a45bb971a12e6.mka -i RT103bfe5f4b129860f69cd8e820f3a10b.mka -filter_complex "[1:a]adelay=13500s:all=1[apad]; [0:a][apad]amix=inputs=2:weights=1|1[aout]" -map [aout] combined_audio.mka
这是我得到的输出,它导致了第二个音频延迟 5 小时 45 分钟而不是 3 小时 45 分钟的问题
ffmpeg -i RTb295d0534191e1acb22a45bb971a12e6.mka -i RT103bfe5f4b129860f69cd8e820f3a10b.mka -filter_complex "[1:a]adelay=13500s:all=1[apad]; [0:a][apad]amix=inputs=2:weights=1|1[aout]" -map [aout] combined_audio.mka
ffmpeg version n5.0-4-g911d7f167c-20220311 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11.2.0 (crosstool-NG 1.24.0.533_681aaef)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220311
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100
libpostproc 56. 3.100 / 56. 3.100
Input #0, matroska,webm, from 'RTb295d0534191e1acb22a45bb971a12e6.mka':
Metadata:
encoder : GStreamer matroskamux version 1.16.2
creation_time : 2022-03-23T21:20:27.000000Z
Duration: 03:45:00.47, start: 0.291000, bitrate: 19 kb/s
Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
title : Audio
Input #1, matroska,webm, from 'RT103bfe5f4b129860f69cd8e820f3a10b.mka':
Metadata:
encoder : GStreamer matroskamux version 1.16.2
creation_time : 2022-03-24T01:05:30.000000Z
Duration: 02:45:03.51, start: 13502.587000, bitrate: 5 kb/s
Stream #1:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
title : Audio
Stream mapping:
Stream #0:0 (opus) -> amix
Stream #1:0 (opus) -> adelay:default
amix:default -> Stream #0:0 (libvorbis)
Press [q] to stop, [?] for help
Output #0, matroska, to 'combined_audio.mka':
Metadata:
encoder : Lavf59.16.100
Stream #0:0: Audio: vorbis (oV[0][0] / 0x566F), 48000 Hz, stereo, fltp
Metadata:
encoder : Lavc59.18.100 libvorbis
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time231x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time184x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time189x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time223x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time275x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time245x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time213x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time209x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time208x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time204x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time199x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time193x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time185x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time181x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time178x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time177x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time176x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time169x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time167x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time163x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time146x
[libvorbis @ 00000229f8a7bbc0] Queue input is backward in time139x
size= 75141kB time=06:07:52.57 bitrate= 27.9kbits/s speed= 130x
video:0kB audio:70470kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 6.628071%
混合在一起的音频文件 -
https://www.easyupload.io/m/durisk
最佳答案
这些音频文件的根本问题似乎是频繁丢帧(每个包含 960 个音频样本)。有 的实例8117 秒 第一个文件中 2 个连续帧之间的间隙。因为 MKA 文件是在没有填充这些丢帧的情况下形成的,所以它们实际上是可变采样率流,同时标记为恒定采样率。这种差异使您的音频看起来比录制的要短,这解释了为什么您的输出通常比预期的要长得多,并且对您处理这些文件的尝试造成了严重破坏。
虽然 atm 我不知道 FFmpeg 是否提供了一种机制来修复/估计这些文件中的丢帧,但您可以通过以下方式蛮力/忽略丢帧:
混合
ffmpeg -i RTb295d0534191e1acb22a45bb971a12e6.mka \
-i RT103bfe5f4b129860f69cd8e820f3a10b.mka \
-filter_complex "[1:a]asetpts=NB_CONSUMED_SAMPLES/SR/TB,adelay=13500s:all=1[apad]; \
[0:a]asetpts=NB_CONSUMED_SAMPLES/SR/TB,[apad]amix=inputs=2:weights=1|1[aout]" \
-map [aout] combined_audio.mka
连续
ffmpeg -i RTb295d0534191e1acb22a45bb971a12e6.mka \
-i RT103bfe5f4b129860f69cd8e820f3a10b.mka \
-filter_complex "[1:a]asetpts=NB_CONSUMED_SAMPLES/SR/TB,[0a]concat=2:0:1[aout]; \
[0:a]asetpts=NB_CONSUMED_SAMPLES/SR/TB[0a]" \
-map [aout] combined_audio.mka
解释
asetpts
过滤器用于完全忽略文件中有关输入过滤器图的帧时间的内容,并使用以下变量和公式重新计算每个帧的新 PTS:
NB_CONSUMED_SAMPLES
处理的样本数量SR
:采样率(样本/秒)TB
: 时基(秒)NB_CONSUMED_SAMPLES/SR/TB
: 新的 PTS(起始 TB block 索引)setpts
筛选:
setpts=N/FR/TB
填补缺失的帧
aresample
可用于用零值样本(静音)填充缺失的帧。 (
a reference post 。你可以试试看每个 mka 文件会发生什么:
ffmpeg -i RTb295d0534191e1acb22a45bb971a12e6.mka \
-af "aresample=async=1 \
patched_audio.mka
注意:这将使流可能更长(低音?)嗡嗡声/哔哔声,使其无法收听。但是,您可能需要这样做才能将它们同步到视频。重采样器可以拉伸(stretch)周围的样本,因此这可能是您的解决方案。见
the documentation对于
async
,
min_comp
,
min_hard_comp
,
comp_duration
, 和
max_soft_comp
选项。
关于FFMPEG队列输入及时向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71708414/
我想在 iOS 设备上以慢动作显示视频。 我的 View 包含一个视频(约 2 秒长)和一个 slider 。 用户可以移动 slider 并逐帧(向前和向后)浏览电影。 MPMoviePlayerC
假设两个模型的标准外键,例如: Company(models.Model): name = models.CharField('Nome', max_length = 255) ...
即使从其他项目复制和粘贴代码,我的 NSURL 也会向后格式化,这毫无意义。 例如: let baseURL = NSURL(string: "http://example.com/v1/") NSU
我目前有: $i = 1; while { echo $i; $i++; } 它显示: 1234 etc.. 如何让它向后显示? 例如 4321 etc.. 我基本上想做完全相同的事情,但将其
我正在使用 JQuery 选择页面上的一些元素,然后在 DOM 中移动它们。我遇到的问题是我需要以 JQuery 自然想要选择它们的相反顺序选择所有元素。例如: Item 1 Item
有 Home.vue 和 Statistics.vue 页面。 Home.vue 渲染 TableFields.vue 组件。在 Home.vue 中,有一些字段编号,在页面加载时设置了初始值“3”。
我正在寻找类似 https 的东西,但是是反向的。用户(提前)生成自己的私钥,然后(仅在稍后)向 Web 应用程序提供关联的公钥。这部分交换应该(如果需要)在带外进行。然后使用这些 key 对通信进行
我不知道如何解释我的问题。这是我尝试解释的:函数 FindNext(SearchRec) 将从目录中获取下一个文件。在我的应用程序中,我有时会从当前的 SearchRec 索引向后查找一些文件。那么我
我有一个带前导 NA 的日期向量,我想使用包 zoo 中的 na.approx 为这些 NA 生成一个近似序列。 na.approx 不适用于前导 NA: x <- as.Date(c(rep(NA,
在任何网络浏览器、Windows 文件管理器和许多其他应用程序中,都支持向前和向后导航。默认情况下,这始终(或至少在大多数情况下)适用于额外的鼠标按钮,如果您的鼠标有的话。 我想在基于 WinAPI
我正在尝试使用双向链表编写撤消和重做函数,该双向链表在调用 doAction() 时在 list_1 前面添加操作(节点),在调用 undo() 时将操作存储在 list_2 中,并在调用 redo(
我有一个示例数据框,如下所示 ID count 1 10 2 20 3 40 所以对于累计计数,我要实现 ID count
我的应用程序需要显示一个值的图形表示,范围从 -1 到 1。负值应使用一种颜色,正值应使用另一种颜色。零位于中心,什么也没有显示。 (如果有帮助的话,这里的特殊用途是在金融应用程序中显示买卖订单的相对
我对这个简单的线条动画有点吃力。我想出了如何暂停它,但我需要的是能够从我调用函数 resetAnimation() 的那一刻起将动画反转回起点。 let pathAnimation = CABasic
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How to read a file from bottom to top in Ruby? 在开发我的 R
import numpy as np data = np.array([0, 0, 0, 0, 0, 0, 0, 1], dtype=np.uint8) data.view(np.uint64) 我期
我有一个这样的值列表, lst = [1, 2, 3, 4, 5, 6, 7, 8] 期望输出 : window size = 3 1 # first element in the list
我的代码再简单不过了... if (iWant > thereAre){ msg = "There's only "+thereAre+" left, but you want "+iWant
#include #include /* converts to binary */ int main() { unsigned int decimalNUM = 0; print
CTRL-x o - switch cursor to other window 我想有能力扭转 control-x o做。像 control-x p这正是 control-x o有,但倒退。这个请求
我是一名优秀的程序员,十分优秀!