生成以 10 fps 计数的合成 testsrc 视频,第一帧被复制
Generating synthetic testsrc video counting at 10 fps, first frame is duplicated
我正在尝试使用 FFmpeg 生成合成视频。
我希望帧速率为 10 fps,并且我希望 testsrc
计数器每帧都前进。
问题:
当输出文件为 mp4
时,第一个视频帧被 复制 10 次。
问题:
是 FFmpeg 中的错误,还是命令行参数中的问题?
我正在使用以下命令:
ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.mp4
- 设置
rate=1
的原因是为了让计数器在每一帧都前进。
生成的源模式旨在每秒推进计数器。
- 在输入前设置
-r 10
的原因是为了 "remuxing" 10 fps 的视频,并忽略输入的时间戳。
我发现语法如下 post: Using ffmpeg to change framerate:
Remux with new framerate
ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4
当输出文件为 AVI
时它工作正常(第一帧不重复):
ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.avi
当以 1 fps 生成 AVI
,并以 10 fps Remux 到 mp4
时,存在不同的问题:
第一帧和第二帧重复两次,最后一帧丢失。
以下是命令:
ffmpeg -y -f lavfi -i testsrc=duration=10:size=92x54:rate=1 -c:v libx264 -r 1 vid.avi
ffmpeg -y -r 10 -i vid.avi -c:v copy -r 10 vid.mp4
正在将 mp4
视频解析为 PNG
图片:
ffmpeg -i vid.mp4 %02d.png
结果:
第一帧被复制 10 次。
正在将 AVI
视频解析为 PNG
图片:
结果:
正如预期的那样有 10 帧。
这可能与初始时基有关,但我无法测试几天。现在,使用
ffmpeg -y \
-f lavfi \
-i \
testsrc=duration=10:size=192x108:rate=1 \
-vf \
setpts=N/10/TB \
-r 10 \
-c:v \
libx264 \
vid.mp4
我正在尝试使用 FFmpeg 生成合成视频。
我希望帧速率为 10 fps,并且我希望 testsrc
计数器每帧都前进。
问题:
当输出文件为 mp4
时,第一个视频帧被 复制 10 次。
问题:
是 FFmpeg 中的错误,还是命令行参数中的问题?
我正在使用以下命令:
ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.mp4
- 设置
rate=1
的原因是为了让计数器在每一帧都前进。
生成的源模式旨在每秒推进计数器。 - 在输入前设置
-r 10
的原因是为了 "remuxing" 10 fps 的视频,并忽略输入的时间戳。
我发现语法如下 post: Using ffmpeg to change framerate:
Remux with new framerate
ffmpeg -y -r 24 -i seeing_noaudio.h264 -c copy seeing.mp4
当输出文件为 AVI
时它工作正常(第一帧不重复):
ffmpeg -y -r 10 -f lavfi -i testsrc=duration=10:size=192x108:rate=1 -c:v libx264 vid.avi
当以 1 fps 生成 AVI
,并以 10 fps Remux 到 mp4
时,存在不同的问题:
第一帧和第二帧重复两次,最后一帧丢失。
以下是命令:
ffmpeg -y -f lavfi -i testsrc=duration=10:size=92x54:rate=1 -c:v libx264 -r 1 vid.avi
ffmpeg -y -r 10 -i vid.avi -c:v copy -r 10 vid.mp4
正在将 mp4
视频解析为 PNG
图片:
ffmpeg -i vid.mp4 %02d.png
结果:
第一帧被复制 10 次。
正在将 AVI
视频解析为 PNG
图片:
结果:
正如预期的那样有 10 帧。
这可能与初始时基有关,但我无法测试几天。现在,使用
ffmpeg -y \
-f lavfi \
-i \
testsrc=duration=10:size=192x108:rate=1 \
-vf \
setpts=N/10/TB \
-r 10 \
-c:v \
libx264 \
vid.mp4