2011-07-06 56 views
0

我試圖使用Ffmpeg對許多視頻進行編碼。 除了4以外,我所投射的每個視頻都能正確編碼,在此階段,我們編碼了170多個視頻,沒有問題。當設置-ar作爲選項時,Ffmpeg無法正確編碼

我已經設法解決了由於4個視頻在音軌中沒有音頻(或者沒有設置一個)而失敗的問題。

例如,這是輸出我得到的,當我檢查了「好」的視頻 -

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'good_video.mov': 
Metadata: 
major_brand  : qt 
minor_version : 537199360 
compatible_brands: qt 
Duration: 00:01:57.14, start: 0.000000, bitrate: 2017 kb/s 
Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 1705 kb/s, 25 fps, 25 tbr, 2500 tbn, 5k tbc 
Stream #0.1(eng): Audio: aac, 44100 Hz, stereo, s16, 308 kb/s 
Stream #0.2(eng): Data: tmcd/0x64636D74` 

這是輸出我得到的,當我檢查一個「壞」的視頻 -

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bad_video.mov': 
Metadata: 
major_brand  : qt 
minor_version : 537199360 
compatible_brands: qt 
Duration: 00:02:57.26, start: 0.000000, bitrate: 3006 kb/s 
Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 2902 kb/s, 25 fps, 25 tbr, 2500 tbn, 5k tbc 
Stream #0.1(eng): Audio: aac, stereo, s16, 99 kb/s 
Stream #0.2(eng): Data: tmcd/0x64636D74 

正如你所看到的那樣,「壞」視頻沒有針對它的音頻。這似乎是導致我的問題。 如果我嘗試編碼「壞」的視頻中,我碰到下面的錯誤 -

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'bad_video.mov': 
Metadata: 
major_brand  : qt 
minor_version : 537199360 
compatible_brands: qt 
Duration: 00:02:57.26, start: 0.000000, bitrate: 3006 kb/s 
Stream #0.0(eng): Video: h264, yuv420p, 1280x720, 2902 kb/s, 25 fps, 25 tbr, 2500 tbn, 5k tbc 
Stream #0.1(eng): Audio: aac, stereo, s16, 99 kb/s 
Stream #0.2(eng): Data: tmcd/0x64636D74 
[libx264 @ 0x10180d400]using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX 
[libx264 @ 0x10180d400]profile Constrained Baseline, level 3.1 
[libx264 @ 0x10180d400]264 - core 114 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=0 ref=5 deblock=1:0:0 analyse=0x1:0x111 me=umh subme=8 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 constrained_intra=0 bframes=0 weightp=0 keyint=30 keyint_min=16 scenecut=40 intra_refresh=0 rc_lookahead=30 rc=abr mbtree=1 bitrate=1500 ratetol=2.7 qcomp=0.60 qpmin=10 qpmax=51 qpstep=4 ip_ratio=1.41 aq=1:1.00 
[libfaac @ 0x10180da00]libfaac doesn't support this output format! 
Output #0, mp4, to 'bad_video_encoded.mp4': 
Stream #0.0(eng): Video: libx264, yuv420p, 1280x720, q=10-51, 1500 kb/s, 90k tbn, 25 tbc 
Stream #0.1(eng): Audio: libfaac, stereo, s16, 64 kb/s 
Stream mapping: 
Stream #0.0 -> #0.0 
Stream #0.1 -> #0.1 
Error while opening encoder for output stream #0.1 - maybe incorrect parameters such as bit_rate, rate, width or height 

我試圖用以下命令編碼 -

ffmpeg -i bad_video.mov -b 1500k -vcodec libx264 -vpre slow -vpre baseline -g 30 -y bad_video_encoded.mp4 

我也試圖與 -

ffmpeg -i bad_video.mov -b 1500k -vcodec libx264 -vpre slow -vpre baseline -acodec libfaac -ar 44100 -g 30 -y bad_video_encoded.mp4 

但是,這會丟棄所有的幀,只對音頻進行編碼。 所有的視頻來自同一個來源。

任何想法,我們會出錯?

謝謝。

回答

0

我不知道爲什麼Ffmpeg在這方面遇到麻煩,但是從使用它我知道它很古怪。它看起來像壞的視頻中缺少一些元數據。我建議在該文件上運行FLVMDI,該文件將添加必要的元數據,然後在其上重新運行Ffmpeg。這一步在某些情況下幫助了我。

相關問題