FallingSnow / h265ize

A node utility utilizing ffmpeg to encode videos with the hevc codec.
MIT License
527 stars 81 forks source link

[h265ize]: [debug] [mkvextract] Error: (mkvextract) Error: No EBML head found. #124

Open hakong opened 6 years ago

hakong commented 6 years ago

What can I do about this?

[h265ize]: Processing Video.mp4...
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[h265ize]: [verbose] Encoding started at Sun, 3:06 PM
[h265ize]: [debug] Path: /mnt/data/downloads/downloading/Videos/Video.mp4
[h265ize]: [verbose] Getting metadata...
[h265ize]: [warn] mkvextract exited with error code: 2
[h265ize]: [debug] Container data:
        - duration: 00:07:25
        - size: 174.43 MB
[h265ize]: [verbose] Resolving video streams...
[h265ize]: [debug] Working on stream:
[h265ize]: [debug] Working on stream: 1
[h265ize]: [debug] Working on stream: 2
[h265ize]: [debug] Working on stream: 3
[h265ize]: [verbose] Upconverting...
[h265ize]: [debug] Extracting track 2 from Video.mp4 . Please wait...
[h265ize]: [debug] Extracting track 3 from Video.mp4 . Please wait...
[h265ize]: [debug] Upconverting 2 tracks.
[h265ize]: [debug] [mkvextract] Error: (mkvextract) Error: No EBML head found.

[h265ize]: [warn] mkvextract exited with error code: 2
[h265ize]: [debug] [mkvextract] Error: (mkvextract) Error: No EBML head found.

[h265ize]: MKVEXTRACT_ERROR
[h265ize]: [verbose] Finished encoding at Sun, 3:06 PM (a few seconds)
[h265ize]: [debug] Finished encoding in 0.053 seconds.
FallingSnow commented 6 years ago

It seems mkvextract doesn't want to work with your video. Run h265ize with --disable-upconvert.

hakong commented 6 years ago

Tried that, threw me another error. I'll try compiling the latest version of ffmpeg and see what happens. Ran ffmpeg manually with the same parameters and it gave me:

[root@converter ~]# /usr/bin/ffmpeg -i "/mnt/data/downloads/downloading/Videos/Video.mp4" -y -acodec copy -vcodec libx265 -filter:v crop=704:560:8:6 -c:s copy -pix_fmt yuv420p -map 0:0 -map 0:1 -metadata:s:a:1 title="English AAC LC (Mono)" -map 0:2 -metadata:s:0:2 title=English -metadata:s:0:2 DISPOSITION:default=0 -map 0:3 -metadata:s:0:3 title=English -metadata:s:0:3 DISPOSITION:default=0 -preset medium -x265-params crf=17: "/tmp/h265ize/Video.encoding-in-progress.mkv"
ffmpeg version 2.8.14 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-16)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/mnt/data/downloads/downloading/Videos/Video.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    creation_time   : 2011-06-11 13:08:32
    encoder         : HandBrake 0.9.5 2011010300
  Duration: 00:07:55.00, start: 0.000000, bitrate: 3080 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 718x572 [SAR 16:15 DAR 2872:2145], 2947 kb/s, 24.99 fps, 25 tbr, 90k tbn, 180k tbc (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
      encoder         : JVT/AVC Coding
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
    Stream #0:2(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D), 720x576, 0 kb/s (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
    Stream #0:3(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D), 720x576, 1 kb/s
    Metadata:
      creation_time   : 2011-06-11 13:08:32
x265 [info]: HEVC encoder version 1.9
x265 [info]: build info [Linux][GCC 4.8.5][64 bit] 8bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [info]: Main profile, Level-3 (Main tier)
x265 [info]: Thread pool created using 12 threads
x265 [info]: frame threads / pool features       : 3 / wpp(9 rows)
x265 [warning]: Source height < 720p; disabling lookahead-slices
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 2
x265 [info]: Keyframe min / max / scenecut       : 25 / 250 / 40
x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2
x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0
x265 [info]: References / ref-limit  cu / depth  : 3 / 1 / 1
x265 [info]: AQ: mode / str / qg-size / cu-tree  : 1 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress            : CRF-17.0 / 0.60
x265 [info]: tools: rd=3 psy-rd=2.00 signhide tmvp strong-intra-smoothing
x265 [info]: tools: deblock sao
[matroska @ 0x6d86a0] Codec for stream 1 does not use global headers but container format requires global headers
[matroska @ 0x6d86a0] Tag mp4s/0x7334706d incompatible with output codec id '94208' ([0][0][0][0])
Output #0, matroska, to '/tmp/h265ize/Video.encoding-in-progress.mkv':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isomavc1
    encoder         : HandBrake 0.9.5 2011010300
    Stream #0:0(und): Video: hevc (libx265), yuv420p, 704x560 [SAR 16:15 DAR 704:525], q=2-31, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
      title           : English
      DISPOSITION:default: 0
      encoder         : Lavc56.60.100 libx265
    Stream #0:1(eng): Audio: aac ([255][0][0][0] / 0x00FF), 48000 Hz, mono, 127 kb/s (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
    Stream #0:2(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D), 720x576, 0 kb/s (default)
    Metadata:
      creation_time   : 2011-06-11 13:08:32
    Stream #0:3(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D), 720x576, 1 kb/s
    Metadata:
      creation_time   : 2011-06-11 13:08:32
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (libx265))
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:3 -> #0:3 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input

encoded 0 frames
[root@converter ~]#
FallingSnow commented 6 years ago

It looks like your mkv doesn't match the mkv spec. Strange. I suggest stripping the video and subtitles to a new file using -map and seeing if you can somehow get the audio out. Then remerge them into a valid mkv.

zhilee commented 4 years ago

I encountered the same issue with an avi format movie in latest version(v42.0.0.0) of mkvextract. but mkvtoolnix gui can parse the file, show me there are two parts, one is mpeg2 video and the another one is mp3 audio. So follow the hint by FallingSnow, I use mkvtoolnix to rebuild the avi by adding a placeholder subscript file. Then you can extract any particular track by mkvextract successfully .