0
votes

The purpose of doing this is because my "Smart" samsung TV doesn't play MKV files.

This thread mentions that there is no need for video conversion, just changing the container might suffice. After reading multiple threads on how to change the container of MKV to MP4, I downloaded and compiled the FFMPEG with libfdk_aac support from here. I tried converting a sample MKV file using this command:

ffmpeg -i "C:\VideoTest\Sample1.mkv" -c:v copy -c:a libfdk_aac -b:a 384k "C:\VideoTest\Sample2.mp4"

but getting the following errors (copied from command prompt):

[hevc @ 0000000000308ae0] Could not find ref with POC 113
[hevc @ 0000000000308ae0] Could not find ref with POC 111
[hevc @ 0000000000308ae0] Could not find ref with POC 109
[hevc @ 0000000000308ae0] Could not find ref with POC 107
Input #0, matroska,webm, from 'C:\VideoTest\Sample-1.mk
v':
  Metadata:
    encoder         : libebml v1.3.0 + libmatroska v1.4.1
    creation_time   : 2014-07-16 08:54:02
  Duration: 00:00:58.68, start: 0.042000, bitrate: 3520 kb/s
    Chapter #0.0: start 0.000000, end 58.717000
    Metadata:
      title           : Chapter 4
    Stream #0:0: Video: hevc (Main), yuv420p(tv), 1920x816, SAR 1:1 DAR 40:17, 2
4 fps, 24 tbr, 1k tbn, 1k tbc (default)
    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
 Jun  9 2014 15:16:27
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun  9 2014 15:16:27
      _STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 2733260
      BPS-eng         : 2733260
      DURATION        : 00:00:58.667000000
      DURATION-eng    : 00:00:58.667000000
      NUMBER_OF_FRAMES: 1408
      NUMBER_OF_FRAMES-eng: 1408
      NUMBER_OF_BYTES : 20044023
      NUMBER_OF_BYTES-eng: 20044023
    Stream #0:1: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s (default)

    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
 Jun  9 2014 15:16:27
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun  9 2014 15:16:27
      _STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 767986
      BPS-eng         : 767986
      DURATION        : 00:00:58.625000000
      DURATION-eng    : 00:00:58.625000000
      NUMBER_OF_FRAMES: 5496
      NUMBER_OF_FRAMES-eng: 5496
      NUMBER_OF_BYTES : 5627904
      NUMBER_OF_BYTES-eng: 5627904
    Stream #0:2(eng): Subtitle: hdmv_pgs_subtitle, 1920x1080 (default)
    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
 Jun  9 2014 15:16:27
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun  9 2014 15:16:27
      _STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 17485
      BPS-eng         : 17485
      DURATION        : 00:00:56.750000000
      DURATION-eng    : 00:00:56.750000000
      NUMBER_OF_FRAMES: 40
      NUMBER_OF_FRAMES-eng: 40
      NUMBER_OF_BYTES : 124036
      NUMBER_OF_BYTES-eng: 124036
Output #0, mp4, to 'C:\VideoTest\Sample.mp4':
  Metadata:
    encoder         : Lavf56.1.100
    Chapter #0.0: start 0.000000, end 58.675000
    Metadata:
      title           : Chapter 4
    Stream #0:0: Video: hevc ([35][0][0][0] / 0x0023), yuv420p, 1920x816 [SAR 1:
1 DAR 40:17], q=2-31, 24 fps, 16k tbn, 1k tbc (default)
    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
 Jun  9 2014 15:16:27
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun  9 2014 15:16:27
      _STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 2733260
      BPS-eng         : 2733260
      DURATION        : 00:00:58.667000000
      DURATION-eng    : 00:00:58.667000000
      NUMBER_OF_FRAMES: 1408
      NUMBER_OF_FRAMES-eng: 1408
      NUMBER_OF_BYTES : 20044023
      NUMBER_OF_BYTES-eng: 20044023
    Stream #0:1: Audio: aac (libfdk_aac) ([64][0][0][0] / 0x0040), 48000 Hz, 5.1
, s16, 128 kb/s (default)
    Metadata:
      _STATISTICS_WRITING_APP: mkvmerge v7.0.0 ('Where We Going') 64bit built on
 Jun  9 2014 15:16:27
      _STATISTICS_WRITING_APP-eng: mkvmerge v7.0.0 ('Where We Going') 64bit buil
t on Jun  9 2014 15:16:27
      _STATISTICS_WRITING_DATE_UTC: 2014-07-16 08:54:02
      _STATISTICS_WRITING_DATE_UTC-eng: 2014-07-16 08:54:02
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      BPS             : 767986
      BPS-eng         : 767986
      DURATION        : 00:00:58.625000000
      DURATION-eng    : 00:00:58.625000000
      NUMBER_OF_FRAMES: 5496
      NUMBER_OF_FRAMES-eng: 5496
      NUMBER_OF_BYTES : 5627904
      NUMBER_OF_BYTES-eng: 5627904
      encoder         : Lavc56.0.101 libfdk_aac
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (dts (dca) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[mp4 @ 0000000003be0500] Invalid DTS: 656 PTS: -672 in output stream 0:0
av_interleaved_write_frame(): Invalid argument
[libfdk_aac @ 00000000042fa640] Trying to remove 1024 samples, but the queue is
empty
[mp4 @ 0000000003be0500] Encoder did not produce proper pts, making some up.
[libfdk_aac @ 00000000042fa640] Trying to remove 1024 samples, but the queue is
empty
frame=    2 fps=0.0 q=-1.0 Lsize=      96kB time=00:00:00.04 bitrate=18415.0kbit
s/s
video:95kB audio:1kB subtitle:0kB other streams:0kB global headers:0kB muxing ov
erhead: 0.570364%
Conversion failed!

Also tried using this command:

ffmpeg -i input.wav -c:a libfdk_aac -b:a 128k output.mp4

But this screws up the video quality and I start seeing some bad pixelated patches during the playback.

Any help would be appreciated.

Just an FYI: I got this far by reading blogs and posts. I have 0 knowledge about video conversion.

1
Your second command ffmpeg -i input.wav ... has no video track input. So it can't screw up the video quality.Endoro

1 Answers

0
votes

If you can't play the video after your first command, then (evidently) your TV can't deal with the originally encoded video stream. So - give a shot at re-encoding with another codec. This will produce a high quality re-encoded version (it will take a while to re-encode):

ffmpeg -i input.mkv -qscale 1 -c:a libfdk_aac -b:a 384k output.mp4