我有一个 python 程序,它生成一个图像流以覆盖在 MP4 文件的顶部。这很好用。我将图像数据从 python 传输到 ffmpeg,并将其覆盖在视频之上。我以与视频文件不同的帧速率生成图像,而 ffmpeg 使一切正常。
忽略 python,因为它在这里可能不相关,我运行的 ffmpeg 命令行是:
(这不是 bash 引用的)
ffmpeg -y -i inputmpeg.mp4 -f rawvideo -framerate 10.0 -s 1920x1080 -pix_fmt rgba -i - -r 30 -filter_complex [0:v][1:v]overlay -vcodec libx264 -crf 18 -preset veryfast
要生成缩放的输出图像,我有时可以用
-filter_complex [0:v][1:v]overlay,scale=-1:720
但是,有时输入 mpeg 会被拆分为多个文件,所以我想在这里做同样的事情,但允许指定两个(或三个或十个)输入文件,这将导致它们按顺序播放到覆盖过滤器将与来自 stdin (-i -) 的图像覆盖
感谢您的任何建议!
有问题的相机是GoPro。这是ffprobe的一些输出
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GH070061.MP4':
Metadata:
major_brand : mp41
minor_version : 538120216
compatible_brands: mp41
creation_time : 2021-09-01T10:31:46.000000Z
location : xxxxx/
location-eng : xxxxx/
firmware : HD9.01.01.60.00
Duration: 00:09:42.05, start: 0.000000, bitrate: 45276 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 44997 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 119.88 tbc (default)
Metadata:
rotate : 180
creation_time : 2021-09-01T10:31:46.000000Z
handler_name : GoPro AVC
encoder : GoPro AVC encoder
timecode : 11:53:44:51
Side data:
displaymatrix: rotation of -180.00 degrees
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
Metadata:
creation_time : 2021-09-01T10:31:46.000000Z
handler_name : GoPro AAC
timecode : 11:53:44:51
Stream #0:2(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2021-09-01T10:31:46.000000Z
handler_name : GoPro TCD
timecode : 11:53:44:51
Stream #0:3(eng): Data: bin_data (gpmd / 0x646D7067), 61 kb/s (default)
Metadata:
creation_time : 2021-09-01T10:31:46.000000Z
handler_name : GoPro MET
Stream #0:4(eng): Data: none (fdsc / 0x63736466), 13 kb/s (default)
Metadata:
creation_time : 2021-09-01T10:31:46.000000Z
handler_name : GoPro SOS
如果串联也可以复制“未知编解码器”流,那将是一个奖励——尽管可能是另一个问题。