gpt4 book ai didi

ffmpeg - 如何通过 ffmpeg 将 .MTS 文件 (AVCHD) 转换为 .mp4,而无需正确重新编码 H264 视频流?

转载 作者:行者123 更新时间:2023-12-02 01:26:29 26 4
gpt4 key购买 nike

<小时/>

我在后来发现的另一个社区Video Production上发布了同样的问题,这似乎是解决这个问题的更好地方:

参见:https://video.stackexchange.com/questions/12156/how-can-i-convert-mts-file-avchd-to-mp4-by-ffmpeg-without-re-encoding-h264-v/

<小时/>

1。我尝试了什么

我有一些用我的 AVCHD 相机录制的.MTS(AVCHD 格式)文件。其规范如下:

$ ffprobe 140612_Canon-00000.MTS 
ffprobe version 2.2.1 Copyright (c) 2007-2014 the FFmpeg developers
(snip)
Input #0, mpegts, from '140612_Canon-00000.MTS':
Duration: 00:48:58.40, start: 0.800300, bitrate: 5563 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p, 1440x1080 [SAR 4:3 DAR 16:9],
29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, fltp, 256 kb/s

注意帧率/时基部分:29.97 fps、29.97 tbr、90k tbn、59.94 tbc

现在我想将此文件转换为 .mp4 文件,而不重新编码 H264 视频流,另一方面,将其音频流转码为 AAC。所以我尝试了以下命令:

ffmpeg -i 140612_Canon-00000.MTS -t 60 -y -vcodec 复制 -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4

2。结果

输出文件的规范如下:

$ ffprobe 140612_Canon-00000.MTS.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '140612_Canon-00000.MTS.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.33.100

Duration: 00:01:00.04, start: 0.021333, bitrate: 4590 kb/s

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
1440x1080 [SAR 4:3 DAR 16:9], 4448 kb/s,
59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler

Stream #0:1(und): Audio: aac (mp4a / 0x6134706D),
48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler

查看帧率/时基部分:59.94 fps、59.94 tbr、90k tbn、59.94 tbc。虽然ffmpeg只是复制了视频流,但帧率和时基已更改为两倍值

因此,当我使用 QuickTime Player 或 VLC Player 打开并播放输出文件时,音频没有问题,但是视频流无法正常播放。视频以帧向前和向后反复颤动的方式播放。

3。问题

  1. 如何在不正确重新编码 H264 视频流的情况下通过 ffmpeg 将 .MTS 文件 (AVCHD) 转换为 .mp4
  2. 当我使用 ffmpeg 及其 -vcodec 转换容器时,如何保留原始帧速率/时基值 (fps/tbr/tbn/tbc)复制开关。
  3. 如何通过 ffmpeg 的命令行选项设置帧速率/时基值 (fps/tbr/tbn/tbc),而无需重新编码视频流。

有什么想法吗?

最佳答案

这里是:

ffmpeg -i input.m2ts -c:v copy -c:a aac -strict experimental -b:a 128k output.mp4

这只会复制视频流而不重新编码并将音轨编码为 AAC VBR 立体声,它需要最新的 FFmpeg 版本。

关于ffmpeg - 如何通过 ffmpeg 将 .MTS 文件 (AVCHD) 转换为 .mp4,而无需正确重新编码 H264 视频流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24720063/

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