使用ffmpeg进行转码时寻找视频。

3

我正在开发一个应用程序,可以记录实时电视(dvbt:mpeg.ts文件),并立即使用ffmpeg将其转码为webm文件。我能够以恒定的速率完成这个过程;因此ffmpeg不会赶上正在增长的文件。

现在,我想在html5网站上播放此文件。这可以做到,但是当ffmpeg没有完成转码(我的webm文件仍在增长)时,我无法搜索它(也没有进度条)。

在视频文件被转码的同时搜索它是否可能?我是否错过了一些ffmpeg设置?还是webm出了问题?

这就是我现在拥有的:

ffmpeg -re "inputfile.ts" -y -f webm -vcodec libvpx -acodec libvorbis \ 
       -aq 90 -ac 2 -b:v 1300k -threads 2 "outputfile.webm"

谢谢

1个回答

1

我不知道这是否有帮助,但我曾经使用FFmpeg转码为Flash以在Web上进行流媒体传输的类似解决方案。寻找所需的JavaScript播放器来收集寻找位置,然后更改播放器的URL,告诉后端从新位置重新开始流式传输,类似于:

http://server/player.php?video=x.flv&pos=1838

在后端,ffmpeg命令可能是这样的:

ffmpeg -y -ss 1838 -i x.mpg -s 320x240 -g 30 -r 24 -f flv -deinterlace -ac 1 -ar 11025 -ab 64k -b 256k

然而,我遇到的问题是,-ss会导致ffmpeg在寻找时拍摄视频快照。因此,如果视频是实时录制的(仍在写入),则转码流将在播放达到“相对结尾”(流媒体开始时结束时间点)时结束。我仍然没有找到解决这个问题的方法。

如果您不想观看实时录制的视频,我认为类似的方法可能适用于您——如果您有一种将JavaScript注入到HTML5播放器中的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接