【发布时间】:2012-07-22 07:15:52
【问题描述】:
我使用可以由我的软件控制的 Panasonic hcm280a 相机,它会生成一个巨大的 jpeg 文件流,我想将此流转换为 FLV 流,最好具有良好的压缩比
FFMpeg 会这样做吗?我基本上是在寻找可以为我生成流媒体的现成开源软件(或商业软件)。同样,我的输入是来自相机服务器的 jpg 文件流。
任何见解或评论将不胜感激 谢谢
【问题讨论】:
标签: video compression camera flv
我使用可以由我的软件控制的 Panasonic hcm280a 相机,它会生成一个巨大的 jpeg 文件流,我想将此流转换为 FLV 流,最好具有良好的压缩比
FFMpeg 会这样做吗?我基本上是在寻找可以为我生成流媒体的现成开源软件(或商业软件)。同样,我的输入是来自相机服务器的 jpg 文件流。
任何见解或评论将不胜感激 谢谢
【问题讨论】:
标签: video compression camera flv
对this question 的回答确认 FFmpeg 能够从一系列图像构建视频。但是,那里没有给出详细信息。
在 FFmpeg 常见问题解答中您可以找到:
3.2 How do I encode single pictures into movies?
首先,按照数字顺序重命名您的图片。比如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')。
【讨论】: