我正在尝试使用以下 (mencoder) 命令将 mp4 或 3gp 视频文件转换为 Flash (flv) 格式(使用 Perl 脚本):
mencoder test.mp4 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=1000:mbd=2 -fps 20.80 -ofps 20.80 -oac mp3lame -lameopts abr:br=32 -srate 22050 -o test.flv
它工作正常,但一些来自手机附件的文件有问题,转换后的 FLV 文件只有音频。
我还使用了 ffmpeg 命令,如下所示:
ffmpeg -i test.mp4 -ar 22050 -acodec libmp3lame -ab 32K -r 25 -vcodec flv test.flv
此 ffmpeg 命令有助于转换为 flv,但mencoder
.
我正在考虑一些解决方案,例如,需要检查转换后的 flv 是否有音频和视频,然后根据它采取行动。你能帮我解决这个问题吗?
这是更多信息(日志):
[mov,mp4,m4a,3gp,3g2,mj2 @ 0xb6b9a3a0]多个编辑列表条目,可能会出现a/v不同步,补丁欢迎** MUXER_LAVF * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** 记住:MEncoder 的 libavformat 复用功能目前已损坏,并且在存在 B 帧的情况下会生成错误的文件。此外,由于错误,MPlayer 将播放这些不正确的文件,就好像没有错一样!
不支持的 PixelFormat 61 不支持的 PixelFormat 53 不支持的 PixelFormat 81 [flv @ 0xb6b9a3a0]流 0 的编解码器不使用全局标头,但容器格式需要全局标头 [flv @ 0xb6b9a3a0]流 1 的编解码器不使用全局标头,但容器格式需要全局标头 [ flv @ 0xb6b9a3a0]pts < dts in stream 0 写入帧时出错。
[flv @ 0xb6b9a3a0]pts < dts in stream 0 写入帧时出错。
[flv @ 0xb6b9a3a0]pts < dts in stream 0 写入帧时出错。
[flv @ 0xb6b9a3a0]pts < dts in stream 0 写入帧时出错。
[flv @ 0xb6b9a3a0]pts < dts in stream 0 写入帧时出错。
跳帧!
…………………………………………………………………………………………………………