我有超過1000個視頻的錯誤級別信息,因此不能在某些設備上播放。它們是H.264基線和mp4容器中的aac音頻。我想糾正它們,但避免重新編碼。我是否認爲這是可能的並且會更快?如何識別流中的level_idc位?所有的流都將它們放在同一個位置嗎?我希望這只是在流中的一個地方,這個假設是否正確? 更新:我遇到了一個聲稱要執行此操作的Windows可執行文件link。我希望能夠在unix上執行此命令行,所以我可以編寫腳本。修改MP4流中的H.264級別
更新信息:根據羅馬的回答如下。我挖出了MP4語法,發現Profile和Level信息是avcC
原子stsd
的一部分。我可以看到該級別設置爲1E
,我將其更正爲1F
。前:61 76 63 43 01 42 C0 1E FF E1 00 19 67 42 C0 1E D9
後:61 76 63 43 01 42 C0 1F FF E1 00 19 67 42 C0 1E D9
與該的MediaInfo改爲:
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : No
Format settings, ReFrames : 3 frames
Muxing mode : Container [email protected]
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1mn 4s
Bit rate : 3 000 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.109
Stream size : 22.7 MiB (92%)
Writing library : x264 core 120 r2151 a3f4407
Encoding settings : cabac=0/ref=3/deblock=1:0:0/analyse=0x1:0x111/me=hex/subme=7/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=12/sliced_threads=0/nr=0/decimate=1/interlaced=0/bluray_compat=0/constrained_intra=0/bframes=0/weightp=0/keyint=250/keyint_min=25/scenecut=40/intra_refresh=0/rc_lookahead=40/rc=abr/mbtree=1/bitrate=3000/ratetol=1.0/qcomp=0.60/qpmin=0/qpmax=69/qpstep=4/ip_ratio=1.40/aq=1:1.00
它推出了木星模式參數與3.1
水平,但可惜這種流未在設備上播放兩種。如何更正Format Profile
中指示的級別這可能不需要重新編碼?
現在設置了什麼級別,需要什麼級別?你可以發佈一些文件的mediainfo嗎? – osgx 2013-03-20 09:46:23
它設置爲3.0,我希望它是3.1,他們都是720p視頻。 – d33pika 2013-03-20 09:51:39