gpt4 book ai didi

ffmpeg - 如何将这两个格式不同的视频文件与ffmpeg连接起来?

转载 作者:行者123 更新时间:2023-12-04 23:14:40 27 4
gpt4 key购买 nike

文件 s.mp4 由照片创建,并添加了静音音轨。
文件 r.mp4 是使用 Android 平板电脑上的内置视频记录创建的。

我想尝试将 s.mp4 与 r.mp4 匹配,以便它们可以连接(s 然后 r)。现在,时基似乎关闭,它播放 r.mp4 中的音频,但从不显示视频。它总是显示来自 s.mp4 的视频。通过使用 -video_track_timescale 90k,我能够匹配 90k 的 tbn但我不知道如何匹配tbc。一个是 180k,另一个是 59.94。

s.mp4 探头

./ffprobe s.mp4 
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 's.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.25.100
Duration: 00:00:05.04, start: 0.000000, bitrate: 296 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 286 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
Metadata:
handler_name : SoundHandler

r.mp4 探针
./ffprobe r.mp4 
ffprobe version 4.0-tessus Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)
configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-version3 --pkg-config-flags=--static --disable-ffplay
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'r.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2018-06-11T20:12:03.000000Z
com.android.version: 7.0
Duration: 00:00:10.89, start: 0.000000, bitrate: 17087 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/smpte170m), 1920x1080, 16810 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn, 180k tbc (default)
Metadata:
creation_time : 2018-06-11T20:12:03.000000Z
handler_name : VideoHandle
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
Metadata:
creation_time : 2018-06-11T20:12:03.000000Z
handler_name : SoundHandle

最佳答案

使用此命令生成 s.mp4 .

ffmpeg -framerate 30 -i image -f lavfi -i anullsrc
-c:v libx264 -profile:v high -c:a aac
-pix_fmt yuv420p -ac 2 -ar 48000
-color_range 1 -color_primaries 1 -colorspace 1 -color_trc 6
-video_track_timescale 90k -t 5 s.mp4
r有一个 High profile H264 流,所以应该匹配。我不知 Prop 体的编码设置,因此某些属性(如 refcount)仍有可能不匹配。
tbc对于连接目的无关紧要。颜色标志也没有,但我只是为勤奋的玩家设置它们。

我建议您将这两个文件重新混合到 TS,然后再连接到 MP4。这将使主视频的 xPS 留在带内,因此即使它们的属性不完全匹配,一些播放器也会重新启动解码器。

关于ffmpeg - 如何将这两个格式不同的视频文件与ffmpeg连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805502/

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