我有一些 MP4 视频文件在其标题信息中缺少像素格式。我已经尝试将其设置为最大值 2147483647,但这并没有帮助probesize
。analyzeduration
所以我知道这些视频可能已损坏,但如果这是唯一缺少的信息,我想我可以通过重建它们的标题信息或通过强制像素格式以某种方式解码它们来恢复它们。有谁知道这是否可能?该文件的更多背景信息:
媒体信息:
$ mediainfo DJI_0090.MOV
General
Complete name : DJI_0090.MOV
Format : MPEG-4
Format profile : QuickTime
Codec ID : qt 2014.02 (qt )
File size : 165 MiB
Duration : 22 s 322 ms
Overall bit rate mode : Variable
Overall bit rate : 61.8 Mb/s
Encoded date : UTC 2017-05-31 18:04:45
Tagged date : UTC 2017-05-31 18:04:45
Comment : 0.9.145
©gpt : -170.60
©gyw : +157.30
©grl : +0.00
IsTruncated : Yes
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.2
Format settings, CABAC : Yes
Format settings, RefFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 22 s 322 ms
Bit rate mode : Variable
Bit rate : 59.4 Mb/s
Maximum bit rate : 50.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 59.940 (60000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.478
Stream size : 158 MiB (96%)
Title : DJI.AVC
Language : English
Encoded date : UTC 2017-05-31 18:04:45
Tagged date : UTC 2017-05-31 18:04:45
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
ff探针:
$ ffprobe -analyzeduration 2147483647 -probesize 2147483647 DJI_0090.MOV
ffprobe version 3.3.2 Copyright (c) 2007-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-indev=qtkit --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libsoxr --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-opencl --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2_1/include/openjpeg-2.1 --enable-nonfree --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc2e9002600] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1920x1080): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'DJI_0090.MOV':
Metadata:
major_brand : qt
minor_version : 538182144
compatible_brands: qt
creation_time : 2017-05-31T18:04:45.000000Z
comment : 0.9.145
Duration: 00:00:22.36, bitrate: 61732 kb/s
Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), none, 1920x1080, 59.94 fps, 59.94 tbr, 60k tbn, 120k tbc (default)
Metadata:
creation_time : 2017-05-31T18:04:45.000000Z
handler_name : DJI.AVC
encoder : Dji AVC encoder
我不能以这种方式在 ffmpeg 上强制使用 pixel_format:
$ ffmpeg -pixel_format yuv420p -i DJI_0090.MOV test.mp4
ffmpeg version 3.3.2 Copyright (c) 2000-2017 the FFmpeg developers
built with Apple LLVM version 8.1.0 (clang-802.0.42)
configuration: --prefix=/usr/local/Cellar/ffmpeg/3.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --disable-indev=qtkit --enable-ffplay --enable-libfdk-aac --enable-libmp3lame --enable-libsoxr --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-opencl --disable-lzma --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.1.2_1/include/openjpeg-2.1 --enable-nonfree --enable-vda
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libavresample 3. 5. 0 / 3. 5. 0
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Option pixel_format not found.
有没有其他方法可以用 ffmpeg 完成这个?是否可以编辑其标题信息以包含像素格式信息?