我試圖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