2012-05-12 48 views
1

在下面的步驟3和4中,.mp4都會正常播放。不過,儘管我在最後一步(音頻+視頻)中使用了似乎相同的設置,但這一步不起作用。視頻播放速度超過10倍......音頻也不播放。ffmpeg編碼播放速度非常快。 Audio.mp4和Video.mp4可以正常播放,但兩者都不能播放。

步驟5的ffmpeg消息顯示它包含了音頻。

Output #0, mp3, to '/tmp/test.mp4': 
    Stream #0.0: Video: libx264, yuv420p, 720x480, q=2-31, 90k tbn, 23.98 tbc 
    Stream #0.1: Audio: libmp3lame, 48000 Hz, stereo, s16, 128 kb/s 

隨後運行ffmpeg -i顯示沒有音頻的痕跡,但它確實在視頻報告......我有什麼遺漏,得到它多路複用的正常嗎?...

#!/bin/bash 

# 1. create Audio 
wine avs2pipe.exe audio "$src_avs" >"$temp_pcm" 

# 2. create Video 
wine avs2yuv.exe "$src_avs" - | 
    x264 --stdin y4m --output "$temp_h264" - 2>/dev/null 

# 3. This works. (audio only) 
# encode `audio.mp4 
ffmpeg -acodec pcm_s16le -f u16le -ac 2 -ar 48000 -i "$temp_pcm" \ 
     -acodec libmp3lame -f mp3 -ar 48000 -ab 128k -y "$audio_mp4" 

# 4. This works. (video only) 
# encode `video.mp4 
ffmpeg -i "$temp_h264" \ 
     -vcodec copy -y "$video_mp4" 

# 5. This DOES NOT work! It plays very fast. 
# encode `final.mp4' 
ffmpeg -acodec pcm_s16le -f u16le -ac 2 -ar 48000 -i "$temp_pcm" \ 
     -i "$temp_h264" \ 
     -acodec libmp3lame -f mp3 -ar 48000 -ab 128k \ 
     -vcodec copy \ 
     -y "$final_mp4" 
+0

簡化您的問題,請,我真的不能得到它。您正試圖將音頻和視頻統一到同一個視頻文件?你是否試圖給我們'映射'來映射流? – EladG

+0

步驟3和步驟4僅用於表明參數實際上起作用(即它們並非完全不合理)......我只需要步驟1,2和5就可以工作......我想我簡化了我的問題。我的實際情況是使用命名管道(fifo)以及sed過濾器和I/O重定向來隱藏從'wine'發出的警告消息... Re'map',我嘗試了一些變化,但沒有嘗試過遠已經工作...我會繼續戳它... –

+0

遇到類似的情況與ffmpeg工作,好問題+1 – hinekyle

回答

1

它的工作原理當我從第5步刪除-f mp3 ...
我不知道爲什麼,但它沒有其他更改。

0

'-f fmt(輸入/輸出)'

強制輸入或輸出文件格式。格式通常是自動檢測輸入文件並從輸出文件的文件擴展名中猜測出來的,所以在大多數情況下這個選項是不需要的。