我基本上是从opengl动画uisng glreadpixels
和unix管道创建视频:
FILE *ffmpeg = popen("/usr/local/Cellar/ffmpeg/2.5.4/bin/ffmpeg"
" -framerate 30"
" -vcodec rawvideo"
" -f rawvideo"
" -pix_fmt rgb32"
" -s 1080x720"
" -i pipe:0 -vf vflip -vcodec h264"
" -r 60"
" /Users/xamarin/Desktop/out.mp4", "w");
当我为视频创建帧时,是否可以在每个帧中添加水印。我知道如何在现有视频中添加水印,但我想在我创建视频时添加水印,以便在步骤中我获得带有水印的视频。建议ffmpeg
可以做到这一点的一些参数。
答案 0 :(得分:2)
ffmpeg \
-framerate 30 -f rawvideo -pixel_format rgb32 -video_size 1080x720 -i pipe:0 \
-i overlay.png \
-i audio.foo \
-filter_complex "[0:v]vflip[main];[main][1:v]overlay=format=rgb,format=yuv420p" \
-c:v libx264 -c:a aac -movflags +faststart output.mp4
rawvideo demuxer documentation列出-pixel_format
代替-pix_fmt
和-video_size
而不是-s
。
当您加入-c:v rawvideo
时,您可能不需要-f rawvideo
。
我删除了-r 60
,因为似乎没有必要复制这些框架。
将format=rgb
添加到RGB输入的叠加过滤器时,您可能会看到视觉上的改进。格式滤波器然后用于使用YUV 4:2:0色度子采样进行H.264输出,这是非基于FFmpeg的播放器所需的。
-movflags +faststart
如果您的观看者会通过渐进式下载进行观看,则非常有用。