[FFmpeg-user] convert mkv to mp4

Moritz Barsnick barsnick at gmx.net
Fri Jan 31 12:57:52 EET 2025


On Thu, Jan 30, 2025 at 14:53:57 +0100, KoSza wrote:
> Hello,
>
> Maybe the answer was not delivered.
> Regarding to subtitles the suggestion was right and worked, to convert is
> to mov_text is worked

For some reason, ffmpeg is skipping the audio tracks:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:3 -> #0:1 (subrip (srt) -> mov_text (native))
  Stream #0:4 -> #0:2 (subrip (srt) -> mov_text (native))
  Stream #0:5 -> #0:3 (subrip (srt) -> mov_text (native))
  Stream #0:6 -> #0:4 (subrip (srt) -> mov_text (native))

I cannot exactly see why, as they are detected as EAC3 audio (edited
for brevity):
Input #0, matroska,webm, from 'Dune.Prophecy.S01E02.2160p.MAX.WEB-DL.DDP5.1.Atmos.DV.HDR.H.265.HUN.ENG-PTHD.mkv':
  Duration: 01:02:44.45, start: 0.000000, bitrate: 20570 kb/s
    Stream #0:0: Video: hevc, none, 3840x1920, SAR 1:1 DAR 2:1, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
    Stream #0:1(hun): Audio: eac3, 48000 Hz, 5.1 (default)
    Stream #0:2(eng): Audio: eac3, 48000 Hz, 5.1
    Stream #0:3(hun): Subtitle: subrip (default) (forced)
    Stream #0:4(hun): Subtitle: subrip
    Stream #0:5(eng): Subtitle: subrip
    Stream #0:6(eng): Subtitle: subrip
Output #0, mp4, to 'Dune.Prophecy.S01E02.2160p.MAX.WEB-DL.DDP5.1.Atmos.DV.HDR.H.265.HUN.ENG-PTHD22.mp4':
    Stream #0:0: Video: hevc (hev1 / 0x31766568), none, 3840x1920 [SAR 1:1 DAR 2:1], q=2-31, 23.98 fps, 23.98 tbr, 16k tbn, 1k tbc (default)
    Stream #0:1(hun): Subtitle: mov_text (tx3g / 0x67337874) (default) (forced)
    Stream #0:2(hun): Subtitle: mov_text (tx3g / 0x67337874)
    Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874)
    Stream #0:4(eng): Subtitle: mov_text (tx3g / 0x67337874)

I am wondering whether it's due to some feature missing - I do see a
lot of disabled stuff in your ffmpeg build:
    --disable-protocols --disable-protocol=rtp --enable-protocol=file
    --enable-protocol=pipe --disable-muxer=image2
    --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffplay
    --disable-ffprobe --disable-doc --disable-devices --disable-bzlib
    --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb
    --enable-libmp3lame --disable-v4l2-m2m --disable-vaapi --disable-cuvid
    --disable-nvenc --disable-decoder=aac --disable-decoder=aac_fixed
    --disable-encoder=aac --disable-decoder=amrnb --disable-decoder=ac3
    --disable-decoder=ac3_fixed --disable-encoder=zmbv
    --disable-encoder=dca --disable-decoder=dca --disable-encoder=ac3
    --disable-encoder=ac3_fixed --disable-encoder=eac3
    --disable-decoder=eac3 --disable-encoder=truehd
    --disable-decoder=truehd --disable-encoder=hevc_vaapi
    --disable-decoder=hevc --disable-muxer=hevc --disable-demuxer=hevc
    --disable-parser=hevc --disable-bsf=hevc_metadata
    --disable-bsf=hevc_mp4toannexb --disable-encoder=h264_v4l2m2m
    --disable-decoder=h264 --disable-decoder=h264_v4l2m2m
    --disable-muxer=h264 --disable-demuxer=h264 --disable-parser=h264
    --disable-bsf=h264_metadata --disable-bsf=h264_mp4toannexb
    --disable-bsf=h264_redundant_pps --disable-decoder=vc1
    --disable-decoder=vc1_v4l2m2m --disable-muxer=vc1 --disable-demuxer=vc1
    --disable-parser=vc1

Why would you disable the hevc parser if you intend on feeding it files
with hevc? Not sure it matters, it justs seems overly sparse to me.

Moritz


More information about the ffmpeg-user mailing list