- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 4 个音频轨道的视频文件。我需要将音轨 1:2 与音轨 3:4 交换
这是我想要实现的目标
Input file: 1:2:3:4
Outputfile: 3:4:2:1
所以只需交换音轨,这是我尝试过的:
ffmpeg -i "test.mxf" -filter_complex "[a:0]amerge=inputs=1[ch1] ;[a:1]amerge=inputs=1[ch2];[a:2]amerge=inputs=1[ch3];[a:3]amerge=inputs=1[ch4]" -map 1:v -map [ch3] -map [ch4] -map [ch1] -map [ch2] -c:v copy -c:a aac -b:a 128k -ar 48000 -ac 2 "out.mxf"
将它们提取为单独的 channel ,然后将它们映射回输出。
ffmpeg -i "test.mxf" -filter_complex "[a:0]amerge=inputs=1[ch1] ;[a:1]amerge=inputs=1[ch2];[a:2]amerge=inputs=1[ch3];[a:3]amerge=inputs=1[ch4]" -map 1:v -map [ch3] -map [ch4] -map [ch1] -map [ch2] -c:v copy -c:a aac -b:a 128k -ar 48000 -ac 2 "out.mxf"
ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
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
Guessed Channel Layout for Input Stream #0.1 : mono
Guessed Channel Layout for Input Stream #0.2 : mono
Guessed Channel Layout for Input Stream #0.3 : mono
Guessed Channel Layout for Input Stream #0.4 : mono
Input #0, mxf, from 'test.mxf':
Metadata:
operational_pattern_ul: 060e2b34.04010101.0d010201.01010900
uid : 50a83ad4-88be-11ec-9d91-d0817add6884
generation_uid : 50a83ad5-88be-11ec-be21-d0817add6884
company_name : Adobe Inc.
product_name : Premiere Pro
product_version : 22.1.2
application_platform: Mac OS X
product_uid : 0c3919fe-46e8-11e5-a151-feff819cdc9f
modification_date: 2022-02-08T09:05:52.000000Z
material_package_umid: 0x060A2B340101010501010D111300000050C9F301189605A21036D0817ADD6884
timecode : 10:00:00:00
Duration: 00:01:41.04, start: 0.000000, bitrate: 55052 kb/s
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, unknown/bt709/bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 50000 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Metadata:
file_package_umid: 0x060A2B340101010501010D12131248EF50C9F301189605A2B55DD0817ADD6884
file_package_name: Source Package
track_name : Track 1
Side data:
cpb: bitrate max/min/avg: 50000000/0/0 buffer size: 17825792 vbv_delay: N/A
Stream #0:1: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D12131248EF50C9F301189605A2B55DD0817ADD6884
file_package_name: Source Package
track_name : Track 2
Stream #0:2: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D12131248EF50C9F301189605A2B55DD0817ADD6884
file_package_name: Source Package
track_name : Track 3
Stream #0:3: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D12131248EF50C9F301189605A2B55DD0817ADD6884
file_package_name: Source Package
track_name : Track 4
Stream #0:4: Audio: pcm_s24le, 48000 Hz, mono, s32 (24 bit), 1152 kb/s
Metadata:
file_package_umid: 0x060A2B340101010501010D12131248EF50C9F301189605A2B55DD0817ADD6884
file_package_name: Source Package
track_name : Track 5
Invalid input file index: 1.
最佳答案
想通了,我为视频使用了错误的索引,还在下面的解决方案中添加了音频编解码器。
ffmpeg -i "test.mxf" -filter_complex "[a:0]amerge=inputs=1[ch1] ;[a:1]amerge=inputs=1[ch2];[a:2]amerge=inputs=1[ch3];[a:3]amerge=inputs=1[ch4]" -map 0:v -map [ch3] -map [ch4] -map [ch1] -map [ch2] -c:v copy -c:a pcm_s24le "out.mxf"
这对我有用,如果有人有更好的解决方案,请分享
关于FFMPEG : How to swap audio tracks and output the same file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71032782/
我的问题很简单。执行以下操作是否安全? 不需要任何道德建议,例如“不要将函数命名为 swap()!”或者随便什么,拜托! file1.hpp //header guards here #include
我很好奇,所以我检查了swap的源代码! clojure 存储库上的函数,如下所示: (defn swap! "Atomically swaps the value of atom to be:
我正在实现一个与 std::array 具有类似接口(interface)的类,它同时具有 member swap()和 non-member swap() . 由于我希望我的类模仿标准容器,因此我想
这个问题在这里已经有了答案: Rationale behind member function swap (1 个回答) 关闭 4 年前。 如果Coll是标准容器类型,a和b是Coll的实例;那么,
int a=5; b=7; int *pa=&a, *pb=&b; 交换 a 和 b 的值与交换指针的值有何不同,即 pa和 pb (不是 *pa 和 *pb )?两种情况下的结果不一样吗? 我们什么
好的,这是程序,绝对正确 #include using namespace std; template void Swap(T &a , T &b); int main(){ int i
std::swap() 函数是否可以在具有各种不同对象作为变量成员的类中正常工作?特别是,如果其中一些成员是智能指针? class test { ... std::shared_ptr
我正在尝试实现 copy-and-swap idiom在我的自定义 Matrix 类中,我按照链接问题中建议的方式执行 swap() 时遇到了一些麻烦: (我使用的编译器是MS VS2010 IDE的
我知道 ADL 是什么,我知道在 C++ 中,内部作用域函数隐藏外部作用域函数。也就是说,名称不会跨范围重载。所以函数重载需要在相同的范围内完成。 现在我的问题是,对于这个通用代码片段: #inclu
给定两个 std::vector v1, v2。 我想知道使用 std::swap(v1, v2) 比 v1.swap(v2) 有什么好处。 我已经实现了一个关于性能观点的简单测试代码(我不确定它是否
std::string 有一个成员函数 swap,这是交换两个大字符串的有效方法。 既然我们有了 move 语义,那么,给定两个大字符串 s1 和 s2,以下代码 s1.swap(s2); 在效率方面
同时使用 copy-and-swap idiom在一个具有常量引用作为成员的类中, 出现上述错误。 示例代码: #include #include using std::reference_wra
背景 考虑以下代码: #include namespace ns { struct foo { foo() : i(0) {} int i;
我们有: vector f(int); vector v; 这个有效: f(x).swap(v); 这不是: v.swap(f(x)); 为什么? 最佳答案 swap()对 vector 进行非常量引
我已在 Azure 中配置了一个生产和暂存槽,每个槽都使用自己的 SQL Azure 数据库。 每个连接字符串都配置为“粘性”。 但是,当我将生产槽(目标)与暂存槽(源)交换时,我收到以下警告。 这条
我有以下代码: char swap(char reg, char* mem) { std::swap(reg, *mem); return reg; } 我希望这可以编译为: swap
我使用 xor-swap 的插入排序不工作,但没有 xor-swap 它工作正常。如何修复我的异或交换插入排序算法? 没有异或交换的插入排序 - //sorts the given array in
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在实现 copy-and-swap idiom对于我设计的一个小型非拥有内存引用对象的 operator=。当 MemRef 引用我信任其生命周期的一 block 缓冲区时,_ptr 指向缓冲区,
我有两个问题,第二个是可选的。首先,在下面的程序(一个简单的卡片程序的原型(prototype))中,我得到以下错误: (29): error C2660: 'shuffle' : function
我是一名优秀的程序员,十分优秀!