我使用可以由我的软件控制的 Panasonic hcm280a 相机,它会生成一个巨大的 jpeg 文件流,我想将此流转换为 FLV 流,最好具有良好的压缩比
FFMpeg 会这样做吗?我基本上是在寻找可以为我生成流媒体的现成开源软件(或商业软件)。同样,我的输入是来自相机服务器的 jpg 文件流。
任何见解或评论将不胜感激谢谢
我使用可以由我的软件控制的 Panasonic hcm280a 相机,它会生成一个巨大的 jpeg 文件流,我想将此流转换为 FLV 流,最好具有良好的压缩比
FFMpeg 会这样做吗?我基本上是在寻找可以为我生成流媒体的现成开源软件(或商业软件)。同样,我的输入是来自相机服务器的 jpg 文件流。
任何见解或评论将不胜感激谢谢
对这个问题的回答证实 FFmpeg 能够从一系列图像构建视频。但是,那里没有详细说明。
在 FFmpeg 常见问题解答中,您可以找到:
首先,重命名您的图片以遵循数字顺序。例如,img1.jpg
, img2.jpg
, img3.jpg
,... 然后你可以运行:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg
请注意,%d
替换为图像编号。
img%03d.jpg
表示序列img001.jpg
,img002.jpg
等...
ffmpeg 读取的任何图像格式都使用相同的逻辑。
这不是您问题的具体答案,但www.doom9.org是一个很好的视频相关信息来源,值得查看下载和指南
用ffmpeg
. 我假设您的框架名称为frame0000.jpg
, frame0001.jpg
, ...
ffmpeg -f image2 -r 1 -i frame%04d.jpg -s 320x240 -y -an -r 24 out.flv
-r 1
告诉输入流是每秒一帧(每秒一张图像),选择您喜欢的
-s 320x240
缩放所有帧
-y -an
以覆盖输出文件并禁用音频录制
-r 24
以在输出流中有 24 fps
您也可以考虑放在-sameq
中间以尽可能保持质量。
要正确重命名所有框架,您可以使用这个 bash one liner:
i=0 ; for f in *.jpg ; do mv "$f" $(printf "frame%04d.jpg" $i) ; i=$((i+1)) ; done
Motion 使用 ffmpeg 输出 flv 文件:http ://www.lavrsen.dk/twiki/bin/view/Motion/WebHome 您可以禁用运动检测并使其连续输出(请参阅“output_all on”“ffmpeg_video_codec flv”)。