我试图MP4或3GP视频文件转换到Flash(FLV)格式(使用Perl脚本),使用以下(mencoder的)命令:如何检测音频或视频或在转换后的文件都存在
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 0 写入帧时发生错误。
[flv @ 0xb6b9a3a0] pts <流中的dts 0 写入帧时出错。
[flv @ 0xb6b9a3a0] pts <流中的dts 0 写入帧时出错。
[flv @ 0xb6b9a3a0] pts <流中的dts 0 写入帧时出错。
[flv @ 0xb6b9a3a0] pts <流中的dts 0 写入帧时出错。
跳帧!
.........................
如果它适用于ffmpeg而不是mencoder,那么为什么不使用ffmpeg? – LordNeckbeard
ffmpeg不是100%的工作,它无法转换一些mp4文件。我需要用这两个来解决我的问题。问题:如何检测(使用mencoder或ffmpeg)转换文件中是否存在音频和视频。 –
请显示完整的ffmpeg控制台输出,以查找无法转换某些mp4文件的命令。 – LordNeckbeard