如何使用 ffmpeg 将视频准确定位在 jpeg 中的特定像素位置?
How can one use ffmpeg to position a video exactly at a specific pixel position in jpeg?
例如,
- 有一个尺寸为 1900x1000 的 jpeg,它有一个像素坐标为 490x100 和 1400x500 的框架(矩形)
- 需要将分辨率为 720p 的视频放置在此矩形内
能否请您分享 ffmpeg 命令以连接 jpeg 和视频?我尝试了 -hstack
和 -xstack
过滤器。但是,无法在矩形内获取视频。
TIA
您的矩形尺寸为 910x400,因此您必须缩小 1280x720 视频以适合。但是宽高比不匹配。因此,如果您想保持宽高比,还需要填充或裁剪 1280x720 视频以使其适合 910x400。
合并这些答案:
- Resizing videos with ffmpeg to fit into static size
- How to overlay with ffmpeg?
裁剪以适合
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400:force_original_aspect_ratio=increase,crop=910:400[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4
垫子适合
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400:force_original_aspect_ratio=decrease,pad=910:400:-1:-1[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4
Squish/stretch 适合
这将忽略纵横比并导致图像失真。
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400,setsar=1[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4
例如,
- 有一个尺寸为 1900x1000 的 jpeg,它有一个像素坐标为 490x100 和 1400x500 的框架(矩形)
- 需要将分辨率为 720p 的视频放置在此矩形内
能否请您分享 ffmpeg 命令以连接 jpeg 和视频?我尝试了 -hstack
和 -xstack
过滤器。但是,无法在矩形内获取视频。
TIA
您的矩形尺寸为 910x400,因此您必须缩小 1280x720 视频以适合。但是宽高比不匹配。因此,如果您想保持宽高比,还需要填充或裁剪 1280x720 视频以使其适合 910x400。
合并这些答案:
- Resizing videos with ffmpeg to fit into static size
- How to overlay with ffmpeg?
裁剪以适合
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400:force_original_aspect_ratio=increase,crop=910:400[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4
垫子适合
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400:force_original_aspect_ratio=decrease,pad=910:400:-1:-1[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4
Squish/stretch 适合
这将忽略纵横比并导致图像失真。
ffmpeg -i image.jpg -i video.mp4 -filter_complex "[1]scale=910:400,setsar=1[fg];[0][fg]overlay=x=490:y=100,format=yuv420p" -c:a copy -movflags +faststart output.mp4