【问题标题】:Join two flv files with PHP and ffmpeg用 PHP 和 ffmpeg 加入两个 flv 文件
【发布时间】:2011-02-21 16:54:14
【问题描述】:

在我的网站上,我使用 phpmotion 将视频转换为 FLV 文件。 我想要做的是在任何新的 FLV 文件成功转换后,在开头添加短 FLV 文件。

所以,我需要 PHP 中的 FFMPEG 命令,它将文件 1.flv(介绍文件)与 2.flv(成功转换的文件)连接起来,从而创建 final.flv

我试过了:

ffmpeg -i 1.flv -i 2.flv -vcodec copy -acodec copy final.flv

但没有结果。

感谢您的任何建议。

【问题讨论】:

  • 发生了什么或没有发生什么?您收到什么错误消息?
  • @Pekka - 几乎什么都没有,一个持续两秒的视频和一个黑色显示
  • 而且 1.flv 和 2.flv 都是有效的电影文件?你百分百确定?
  • 可能这两个 flv 文件不兼容...@Sergio 你能发布两个文件的 mediainfo 的输出吗?

标签: php ffmpeg


【解决方案1】:

这里是代码,你必须先将音频和视频分离成原始文件,加入它们然后再转换回flv

mkfifo temp1.a
mkfifo temp1.v
mkfifo temp2.a
mkfifo temp2.v
mkfifo all.a
mkfifo all.v
ffmpeg -i 1.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp1.a < /dev/null &
ffmpeg -i 2.flv -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 - > temp2.a < /dev/null &
ffmpeg -i 1.flv -an -f yuv4mpegpipe - > temp1.v < /dev/null &
{ ffmpeg -i 2.flv -an -f yuv4mpegpipe - < /dev/null | tail -n +2 > temp2.v ; } &
cat temp1.a temp2.a > all.a &
cat temp1.v temp2.v > all.v &
ffmpeg -f u16le -acodec pcm_s16le -ac 2 -ar 44100 -i all.a \
       -f yuv4mpegpipe -i all.v \
       -sameq -y output.flv
rm temp[12].[av] all.[av]

【讨论】:

  • 这个对我有用,据我所知,取自FFmpeg FAQ
【解决方案2】:

我猜你可以使用mencoder 来合并两个文件。

mencoder -oac copy -ovc copy -o c:\video.flv c:\a.flv c:\b.flv

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2010-12-16
    • 2011-04-15
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多