所以我有一個令人難以置信的麻煩構建Mac的ffmpeg的二進制文件,可以正常工作滿足我的所有需求。我有一個較舊的版本,可以毫無問題地很好地重新編排h264視頻,但缺少我需要的庫,即libspeex。我基於ffmpeg的git構建了一個更新的版本,其中包含libspeex,但在嘗試從具有錯誤時間碼的.flv文件(從rtmpdump進行實時轉儲)中重新構建h264時崩潰。所以我有兩個ffmpeg二進制文件,每個都會執行我需要的一半。這是我作爲當前.command文件:如何解析ffprobe輸出並根據結果運行ffmpeg?
for f in ~/Desktop/Uploads/*.flv
do
/usr/local/bin/ffmpeg -i "$f" -vcodec copy -acodec libfaac -ab 128k -ar 48000 -async 1 "${f%.*}".mp4 && rmtrash "$f" || rmtrash "${f%.*}".mp4
done
這ffmpeg的二進制有包括libspeex所以它可以解碼的FLV的輸入文件的Speex音頻。什麼我希望做的是這樣的僞代碼(我在僞第一次嘗試,所以裸跟我來!):
for f in ~/Desktop/Uploads/*.flv
do
ffprobe input.flv
if Stream #0:1 contains speex
ffmpeg-speex -i input.flv -acodec copy -async 1 output.m4a
fi
ffmpeg-h264 -i input.flv -vcodec copy output.mp4
MP4Box -add output.mp4 -add output.m4a finaloutput.mp4
done
是這樣的可能嗎?有沒有其他的選擇? (任何人都想用libspeex,libfaac和libx264構建Mac的ffmpeg?D)所有想法都歡迎在這裏!謝謝。
ffprobe的輸出是什麼樣的?運行grep可能會非常簡單。 – 2012-04-02 23:51:44
'輸入#0,flv,來自'/Users/Greeny/Desktop/input.flv':持續時間:00:37:01.36,開始:0.000000,比特率:351 kb/s Stream#0:0:Video:h264 (Main),yuv420p,320x240 [SAR 1:1 DAR 4:3],15 tbr,1k tbn,30 tbc Stream#0:1:Speex,16000 Hz,1 channels,s16' – 2012-04-02 23:58:38
評論是不可能的格式! -.- – 2012-04-03 00:02:45