MP4 转换只有音频没有视频

我有一些 MP4 檔案,無論使用什麼設定進行轉檔,輸出的檔案都只有音訊、沒有影像。我必須轉檔,因為 ChannelsDVR FireTV 用戶端在「軟體解碼」關閉時無法播放它們;而一旦開啟軟體解碼,其他東西又全都無法播放。

以下是輸入檔案的資訊。幸運(或不幸)的是,記錄檔超過 10MB,無法上傳,真棒。

General
檔案完整名稱:C:\Users\edward\Videos\MCEBuddyVideoIN\Logan’s Run - s01e01 - Logan’s Run.mp4
格式:MPEG-4
格式設定檔:Base Media
編解碼器 ID:isom (isom/iso2/mp41)
檔案大小:769 MiB
長度:1 小時 13 分
整體位元率模式:變動
整體位元率:1 462 kb/s
合集:Logan’s Run
季:1
專輯/演出者:Logan’s Run
部分:1
部分/位置:1
部分/總數:1
曲目名稱:Logan’s Run
曲目名稱/位置:1
演出者:Logan’s Run
類型:Sci-Fi & Fantasy
描述:Logan 離開 City of Domes 並與 Jessica 同行,卻被一對機器人綁架。一個名叫 Rem 的安卓將他們救出,他們在逃離時遭到 Francis 追擊。
錄製日期:1977
編碼日期:UTC 1970-01-01 00:00:00
標記日期:UTC 2009-06-29 18:37:02
封面:有
Part_ID:S1E1

Video
ID:1
格式:MPEG-4 Visual
格式設定檔:Simple@L1
格式設定,BVOP:無
格式設定,QPel:無
格式設定,GMC:無 warppoints
格式設定,矩陣:預設 (H.263)
編解碼器 ID:mp4v-20
長度:1 小時 13 分
位元率:1 328 kb/s
寬度:640 像素
高度:480 像素
顯示比例:4:3
影格率模式:常數
影格率:30.000 FPS
色彩空間:YUV
色度抽樣:4:2:0
位元深度:8 bits
掃描類型:漸進式
壓縮模式:失真
Bits/(Pixel*Frame):0.144
串流大小:699 MiB (91%)
編寫函式庫:Lavc52.1.0
編碼日期:UTC 1970-01-01 00:00:00
標記日期:UTC 1970-01-01 00:00:00

Audio
ID:2
格式:AAC LC
格式/資訊:Advanced Audio Codec Low Complexity
編解碼器 ID:mp4a-40-2
長度:1 小時 13 分
位元率模式:變動
位元率:128 kb/s
聲道數:2 聲道
聲道配置:L R
取樣率:48.0 kHz
影格率:46.875 FPS (1024 SPF)
壓縮模式:失真
串流大小:67.3 MiB (9%)
編碼日期:UTC 1970-01-01 00:00:00
標記日期:UTC 2009-06-29 18:37:02

試著壓縮並上傳日誌。沒看到日誌的話,我們也幫不上太多忙。或者你可以自己瀏覽日誌,搜尋 WARNING>ERROR> 的項目,看看發生了什麼事。

《Logan’s Run》第一季第一集 - Logan’s Run.mp4-For Logan’s Run-2023-02-21T17-49-14.log.zip|附件 (3.1 MB)

這種情況很多,但我不知道該怎麼修。另一種能正常播放的方法,是讓 ChannelsDVR Client 進行轉碼,所以我知道這是可行的。

2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → Error while decoding stream #0:1: Operation not permitted
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef78c0] [IMGUTILS @ 00000084bdfff320] Picture size 0x0 is invalid
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef78c0] video_get_buffer: image parameters invalid
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef78c0] get_buffer() failed
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef78c0] thread_get_buffer() failed
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef78c0] get_buffer() failed (-22 0000000000000000)
2023-02-21T17:49:46 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737ef7d40] Context scratch buffers could not be allocated due to unknown size.

另外,在 Plex 客户端上播放正常,不确定它有什么不同的处理方式。

您的來源影片檔案可能已損毀,或不符合 MPEG-4 規格。當我嘗試處理影片串流時,到處都是錯誤:

2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] time_increment_bits 0 is invalid in relation to the current bitstream, this is likely caused by a missing VOL header
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] time_increment_bits set to 5 bits, based on bitstream analysis
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] time_increment_bits 4 is invalid in relation to the current bitstream, this is likely caused by a missing VOL header
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] time_increment_bits set to 5 bits, based on bitstream analysis
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] looks like this file was encoded with (divx4/(old)xvid/opendivx) → forcing low_delay flag
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] Error, header damaged or not MPEG-4 header (f_code=0)
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → Last message repeated 400 times
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] Error, header damaged or not MPEG-4 header (qscale=0)
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → [mpeg4 @ 000001e737e6ccc0] Error, header damaged or not MPEG-4 header (f_code=0)
2023-02-21T17:49:45 MCEBuddy.AppWrapper.FFmpegMediaInfo → Last message repeated 69 times

錄製來源是什麼?如果是電視調諧卡,那麼可能是來源影片串流有 OTA 損毀,或者如果最近才開始發生,那麼您的電視調諧器驅動程式可能已被更新/取代,導致產生不符合規格的影片。無論哪種情況,問題都出在來源影片串流。

我明白你的意思。我不确定原始来源是什么。我所知道的是,MCEBuddy 使用 FFMpeg,我也知道 ChannelsDVR 使用 FFMpeg 进行转码。它能与 Channels 配合使用,那么为什么它不能与 MCEBuddy 配合使用呢?

無法確定,可能有多種原因。需要原始來源進行分析才能了解發生了什麼事。

我成功用 VLC 轉換了這些檔案。沒有錯誤,現在在 Channels 裡播放完美。

VLC 對設定的寬容度顯然比 FFMpeg 高,而 MCEBuddy 用的正是 FFMpeg。Handbrake 也搞不定,大概也是同樣原因。這些原始檔案肯定爛得很徹底。

好消息是,我其他有問題的檔案,MCEBuddy 都處理得很好。

無論如何還是感謝你試著幫忙,非常感激!!!