Linux ffmpeg无法从两个不同的设备录制电影
我用两种不同的松下设备拍了很多电影。只要我只从一台设备上观看电影,最终的电影就是流畅的。 然而,当我添加来自第二台设备的电影剪辑时,在最终电影结束播放来自第一台设备的电影之后,它会显示音频,并且只显示来自其他设备的电影剪辑的静态图像 示例ffprobe:Linux ffmpeg无法从两个不同的设备录制电影,linux,ffmpeg,concat,Linux,Ffmpeg,Concat,我用两种不同的松下设备拍了很多电影。只要我只从一台设备上观看电影,最终的电影就是流畅的。 然而,当我添加来自第二台设备的电影剪辑时,在最终电影结束播放来自第一台设备的电影之后,它会显示音频,并且只显示来自其他设备的电影剪辑的静态图像 示例ffprobe: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'S6810001.MP4': Metadata: major_brand : isom minor_version : 512
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中的视频具有主配置文件,而a/T00004.MP4具有基线配置文件,则可以将a/T00004.MP4与S6810001.MP4进行比较,反之亦然。请注意,音频也可以具有配置文件,因此请确保查看ffprobe输出中的正确部分。此示例命令将使用相同的配置文件和相同的音频格式:
ffmpeg -i a/T00004.mp4 -profile:v main -c:a aac a/T00004_encoded.mp4
现在使用/T00004_encoded.mp4代替/T00004.mp4作为第二个输入:
奇怪的是,它确实播放了第二个文件中的音频,如OP。
ffmpeg -i a/T00004.mp4 -profile:v main -c:a aac a/T00004_encoded.mp4
ffmpeg -f concat -i mylist.txt -c copy final_movie.MP4