使用ffmpeg进行转码时寻求视频

时间:2012-06-08 11:24:02

标签: ffmpeg mpeg transcoding webm

我正在构建一个记录live tv(dvbt:mpeg.ts-files)的应用程序,并立即用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 个答案:

答案 0 :(得分:1)

我不知道这会有所帮助,但我已经开发出类似于你的解决方案,并使用ffmpeg转码为flash,以便在网上流式传输。在玩家中搜索所需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播放器的方法。