linux - ffmpeg 无法连接来自两个不同设备的电影

标签 linux ffmpeg concatenation


我有一堆来自两种不同松下设备的电影。只要我只从一台设备连接电影 - 最终电影就很流畅。
但是,当我从第二台设备添加影片剪辑时,在最终影片结束后立即从第一台设备播放影片时,它会显示音频,并且仅显示来自其他设备的影片剪辑中的静止图像。

ffmpeg -f concat -i mylist.txt -c copy final_movie.MP4

示例 ffprobe:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'S6810001.MP4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.27.100
  Duration: 00:00:10.62, start: 0.021333, bitrate: 1131 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 998 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 132 kb/s (default)
    Metadata:
      handler_name    : SoundHandle

第二个设备影片剪辑:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'a/T00004.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.27.100
  Duration: 00:00:33.18, start: 0.000000, bitrate: 1190 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 929 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Side data:
      audio service type: main

为什么电影还在?如何准备才能正确连接?

最佳答案

您正在尝试连接可能具有不同配置文件的视频。此外,音频格式不同,但如果要流式复制,它们应该相同。

使用ffprobe查看每个输入的更多详细信息:

ffprobe -loglevel error -show_streams S6810001.MP4
ffprobe -loglevel error -show_streams a/T00004.mp4

在此示例中,假设 S6810001.MP4 中的视频具有 Main 配置文件并且 a/T00004.mp4 具有 Baseline 配置文件,您可以“符合”a/T00004 .mp4 更像 S6810001.MP4,反之亦然(请注意,音频也可以有配置文件,因此请确保您查看的是 中的正确部分ffprobe 输出)。此示例命令将使用相同的配置文件和相同的音频格式:

ffmpeg -i a/T00004.mp4 -profile:v main -c:a aac a/T00004_encoded.mp4

现在使用 a/T00004_encoded.mp4 作为第二个输入,而不是 a/T00004.mp4:

ffmpeg -f concat -i mylist.txt -c copy final_movie.MP4

关于linux - ffmpeg 无法连接来自两个不同设备的电影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080152/

相关文章:

linux - 如果结果超过我的 shell 上的一个页面,如何自动传递到 less?

linux - unix 服务器上的用户配置文件和 bash 配置文件有什么区别

bash - 正在寻找用 gnuplot 和 ffmpeg 做一个小动画

qt - 使用opencv和ffmpeg dylib错误部署QT项目

ffmpeg - 使用 ss 后输出流中的非单调 DTS

Matlab cat() 函数 : index exceeds matrix dimensions

linux - 单个命令查找文件、压缩并移动到不同位置、删除原始文件

linux - Linux下的签名可执行文件

JavaScript。需要在函数内连接两个数组

python - 在 randint 参数中使用变量