FFmpeg 简单 1:1 叠加和连接?
FFmpeg simple 1:1 overlay and concatenate?
我在 Ubuntu 14.04(Jon Severinsson 的 PPA)上使用 ffmpeg 并正在播放文件夹中的视频文件 - 一个接一个。
第一个问题我还没有弄清楚 - 如何添加一个简单的叠加层 - 720p 素材与 720p 叠加层(部分透明)?所以不需要调整大小或对齐 - 只需 1:1 覆盖。我已经用 -vf 和 -filter_complex 尝试了很多,但没有出现。
第二个问题 - 通过连接,是否可以在文件之间无缝切换?最好不要创建新文件 - 那么,即时?我需要减少文件切换之间的间隙或完全消除它们。
这是我现在的bash:
#!/usr/bin/env bash
while :; do
files=(*)
ffmpeg -re -i "${files[$RANDOM % ${#files[@]}]}" -acodec copy -vcodec copy -f flv ServerAddress
done
所以我在 /vod 中拥有一切 - 视频文件,以及 overlay.png
提前致谢,
蒂姆
对于叠加层,您需要将图像缩放到原始源尺寸。
要连接具有相同编解码器的多个源文件,请使用 concat demuxer。
例如:
制作一个playlist.txt
格式如下:
file '/path/to/file_1'
file '/path/to/file_2'
file '/path/to/file_3'
[..]
然后:
ffmpeg -f concat -i playlist.txt -i overlay.png -filter_complex "[1:v] scale=1280:720 [ovr];[0:v][ovr] overlay=0:0" ...
如果视频和图片大小相同,您可以直接使用:
ffmpeg -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay"
更新:
完整示例:
不能同时过滤和复制视频流!
ffmpeg -re -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay" -c:v h264 -c:a libfdk_aac -ar 44100 -f flv rtmp://...
如果您的音频流有效并且具有支持的音频速率之一(44100、22050、11025),您可以:
ffmpeg -re -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay" -c:v h264 -c:a copy -f flv rtmp://...
我在 Ubuntu 14.04(Jon Severinsson 的 PPA)上使用 ffmpeg 并正在播放文件夹中的视频文件 - 一个接一个。
第一个问题我还没有弄清楚 - 如何添加一个简单的叠加层 - 720p 素材与 720p 叠加层(部分透明)?所以不需要调整大小或对齐 - 只需 1:1 覆盖。我已经用 -vf 和 -filter_complex 尝试了很多,但没有出现。
第二个问题 - 通过连接,是否可以在文件之间无缝切换?最好不要创建新文件 - 那么,即时?我需要减少文件切换之间的间隙或完全消除它们。
这是我现在的bash:
#!/usr/bin/env bash
while :; do
files=(*)
ffmpeg -re -i "${files[$RANDOM % ${#files[@]}]}" -acodec copy -vcodec copy -f flv ServerAddress
done
所以我在 /vod 中拥有一切 - 视频文件,以及 overlay.png
提前致谢, 蒂姆
对于叠加层,您需要将图像缩放到原始源尺寸。
要连接具有相同编解码器的多个源文件,请使用 concat demuxer。
例如:
制作一个playlist.txt
格式如下:
file '/path/to/file_1'
file '/path/to/file_2'
file '/path/to/file_3'
[..]
然后:
ffmpeg -f concat -i playlist.txt -i overlay.png -filter_complex "[1:v] scale=1280:720 [ovr];[0:v][ovr] overlay=0:0" ...
如果视频和图片大小相同,您可以直接使用:
ffmpeg -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay"
更新: 完整示例:
不能同时过滤和复制视频流!
ffmpeg -re -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay" -c:v h264 -c:a libfdk_aac -ar 44100 -f flv rtmp://...
如果您的音频流有效并且具有支持的音频速率之一(44100、22050、11025),您可以:
ffmpeg -re -f concat -i playlist.txt -i overlay.png -filter_complex "[0:v] overlay" -c:v h264 -c:a copy -f flv rtmp://...