Video 将jpg文件流转换为FLV流

Video 将jpg文件流转换为FLV流,video,compression,camera,flv,Video,Compression,Camera,Flv,我使用松下hcm280a相机,它可以由我的软件控制,它生成一个巨大的jpeg文件流,我想把这个流转换成FLV流,最好是具有良好的压缩比 FFMpeg会这样做吗?我基本上是在寻找一个现成的开源软件(或商业软件),可以为我生成流媒体。同样,我的输入是来自相机服务器的jpg文件流 如有任何见解或意见,将不胜感激 感谢回答确认FFmpeg能够从一系列图像构建视频。然而,没有给出细节 在FFmpeg常见问题解答中,您可以找到: 首先,按照数字顺序重命名图片。例如,img1.jpg,img2.jpg,im

我使用松下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读取的任何图像格式都使用相同的逻辑

这不是对您问题的具体回答,但它是与视频相关的优秀信息源,值得查看下载和指南以使用
ffmpeg
。我假设您的帧的名称为
frame0000.jpg
frame0001.jpg

ffmpeg -f image2 -r 1 -i frame%04d.jpg  -s 320x240 -y -an -r 24 out.flv
-r1
告知输入流为每秒一帧(每秒一幅图像),请选择您喜欢的
-s 320x240
缩放所有帧
-y-覆盖输出文件和禁用音频录制的
-r 24
在输出流中有24 fps

您还可以考虑将代码> -SAMEQ 在中间以尽可能地保留质量。

要正确重命名所有帧,可以使用以下bash one行程序:

i=0 ; for f in *.jpg ; do mv "$f" $(printf "frame%04d.jpg" $i) ; i=$((i+1)) ; done

运动使用ffmpeg输出flv文件:
您可以禁用运动检测并使其连续输出(请参阅“ffmpeg\U video\U codec flv上的所有输出”)。

但是我有图像流,我没有一堆图片,当我运行我的网络摄像头时,我需要一些在服务器上连续运行的东西,并在图片到达时将其编码到流中对不起,我被“jpeg文件”表达式搞糊涂了。然后你需要编译一个直接使用ffmpeg库(libavcodec/libavformat)的程序。命令行工具不能真正流式传输,尽管你可以通过将一定数量的JPEG文件分块成端到端播放的短流来伪装。非常感谢,似乎很有趣不确定我们是否在同一页上,我猜你的方法会从硬盘上存储的一堆JPG生成FLV,对吗?我的jpeg s在我的网络摄像头运行时到达,所以我不能假设它们都存在。这是否意味着您的相机生成了一个MJPEG流。如果是这样,您也可以转换该流。也许像-f mjpeg i streamfile这样的东西就可以了。还是V4L/V4L2设备?然后你也可以抓取流,比如,-f mjpeg-vd/dev/video0或者你的cam偶尔会写一个额外的JPEG?在这种情况下,我不知道一个解决方案。这一个解决了问题: