gpt4 book ai didi

linux - FFmpeg 不复制所有音频流

转载 作者:IT王子 更新时间:2023-10-29 00:23:45 31 4
gpt4 key购买 nike

我无法让 ffmpeg 从 .mp4 文件复制所有音频流。经过几个小时的在线搜索,似乎这应该复制所有 流 ( as shown in example 4 here ):

ffmpeg -i in.mp4 -map 0 -c copy out.mp4

in.mp4 包含 3 个流:

  • 视频
  • 音轨 1
  • 音轨 2

out.mp4(应与 in.mp4 相同)仅包含 2 个流:

  • 视频
  • 音轨 1

FFmpeg 似乎确实可以正确识别所有 3 个流,但不会将它们全部复制过来。 FFmpeg 的输出:

Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)

编辑 ffmpeg -v 9 -loglevel 99 -i in.mp4 的输出:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from in.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.36.100
Duration: 00:00:06.03, start: 0.000000, bitrate: 5582 kb/s
Stream #0:0(und), 1, 1/15360: Video: h264 (Main), 1 reference frame (avc1 /
0x31637661), yuv420p(tv, bt470bg/unknown/unknown, left), 1920x1080 (0x0) [SAR 1:
1 DAR 16:9], 0/1, 5317 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream #0:2(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 128 kb/s
Metadata:
handler_name : SoundHandler
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0000000001c2b9e0] Statistics: 153350 bytes read, 2 seeks

编辑 2(已解决):我设法从 this ticket 中找到了正确的语法.对于任何其他感兴趣的人,正确的语法是:

ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0 out.mp4

这将复制所有流。

最佳答案

FFmpeg 可以选择将所有流映射到输出,您必须使用选项 -map 0 将所有流从输入映射到输出。

完整的一行看起来像:

ffmpeg -i in.mp4 -c copy -map 0 out.mp4

有关更多信息,请参阅 stream selection 上的文档和 -map选项。

关于linux - FFmpeg 不复制所有音频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820083/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com