我有一个python程序,它正在生成一个图像流来覆盖在MP4文件的顶部。这工作得很好。我将图像数据从python传输到ffmpeg,然后它将其覆盖在视频的顶部。我以与视频文件不同的帧率生成图像,ffmpeg使其全部工作。
忽略python,因为它在这里可能不相关,我运行的ffmpeg命令行是:
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
如果连接也可以复制"未知编解码";这将是一个奖励——尽管可能是另一个问题。
你可以试试concat demuxer
-
创建一个名为
input.txt
的文本文件,其中包含您的文件列表:file '0001.MTS' file '0002.MTS' file '0003.MTS'
所有concat demuxer的输入必须共享相同的属性。
-
运行ffmpeg命令:
ffmpeg -f concat -i inputs.txt -f rawvideo -framerate 10 -video_size 1920x1080 -pixel_format rgba -i - -r 30 -filter_complex "[0:v][1:v]overlay=format=auto,format=yuv420p" -c:v libx264 -crf 18 -preset veryfast -movflags +faststart output.mp4