ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.77k stars 10.08k forks source link

ASS subs converted to mov_text with --embed-subs #17968

Closed mwsduelle closed 2 years ago

mwsduelle commented 6 years ago

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2018.10.05. If it's not, read this FAQ entry and update. Issues with outdated version will be rejected.

Before submitting an issue make sure you have:

What is the purpose of your issue?


If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:

[ffmpeg] Downloaded 71173247 bytes
[download] 100% of 67.88MiB in 01:56
[ffmpeg] Embedding subtitles in 'D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4'
[debug] ffmpeg command line: ffmpeg -y -i "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4" -i "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.enUS.ass" -map 0 -c copy -map "-0:s" "-c:s" mov_text -map "1:0" "-metadata:s:s:0" "language=eng" "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.temp.mp4"
Deleting original file D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.enUS.ass (pass -k to keep)

Description of your issue, suggested solution and other information

The subtitles are being converted to mov_text, likely because mp4 doesn't support soft-subs. I can't seem to find a way to force mkv output without re-encoding the video, which seems silly when it's the only output format in youtube-dl that supports soft-subs. There needs to be a way to force mkv output and properly embed the ASS subs (without re-encoding). For now I can just pass -k to keep the ASS subs and use mkvmerge to get the desired result, but I hope youtube-dl can handle this automatically in the future.

VietTPham commented 6 years ago

you can use this command to change container of the mp4 to mkv without converting ffmpeg -i in.mp4 -vcodec copy -acodec copy out.mkv

mwsduelle commented 6 years ago

I know. Is there a way to get youtube-dl to do it for me, though? I already have a one-click download setup that works for everything except styled subs. Why isn't there an option to output everything as mkv by default?

VietTPham commented 6 years ago

maybe this then --merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv. Ignored if no merge is required with --embed-subs Embed subtitles in the video (only for mp4, webm and mkv videos)

mwsduelle commented 6 years ago
PS C:\Windows\System32\WindowsPowerShell\v1.0> youtube-dl.exe -o 'D:/%(title)s.%(ext)s' -v -f worst --merge-output-format mkv --write-sub --sub-format ass --sub-lang en,eng,enUS --embed-subs https://www.crunchyroll.com/kinos-journey-the-beautiful-world-the-animated-series/episode-1-a-country-where-people-can-kill-others-749557
[debug] System config: []
[debug] User config: ['-o', 'D:/%(title)s.%(ext)s', '-f', 'worst', '--merge-output-format', 'mkv', '--write-sub', '--sub-format', 'ass', '--sub-lang', 'en,eng,enUS,ja,jp,jpn', '--embed-subs']
[debug] Custom config: []
[debug] Command-line args: ['-o', 'D:/%(title)s.%(ext)s', '-v', '-f', 'worst', '--merge-output-format', 'mkv', '--write-sub', '--sub-format', 'ass', '--sub-lang', 'en,eng,enUS,ja,jp,jpn', '--embed-subs', 'https://www.crunchyroll.com/kinos-journey-the-beautiful-world-the-animated-series/episode-1-a-country-where-people-can-kill-others-749557']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2018.10.05
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.16299
[debug] exe versions: ffmpeg N-92246-gc2ac3b8e6a, ffprobe N-92246-gc2ac3b8e6a
[debug] Proxy map: {}
[crunchyroll] 749557: Downloading webpage
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-deDE m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-frFR m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-ruRU m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-enUS m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-ptBR m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-arME m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-esES m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-esLA m3u8 information
[crunchyroll] 749557: Downloading audio-jaJP-hardsub-itIT m3u8 information
[crunchyroll] 749557: Downloading media info
WARNING: en subtitles not available for 749557
WARNING: eng subtitles not available for 749557
WARNING: ja subtitles not available for 749557
WARNING: jp subtitles not available for 749557
WARNING: jpn subtitles not available for 749557
[info] Writing video subtitles to: D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.enUS.ass
[debug] Invoking downloader on 'https://22-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/index-v1-a1.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMi1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=bwXuv7dIBxmok6vwkc8-AvUjfqF~RjUX5~RN0fnl-mSyhfD~MGA0QsE-FycQw6DqmMxVFiGlO0bTfBGr4DcB2fw0cj7MRxpnOB5HfB-658xcE0bis-g7zhnn9p9BRfLFPQsCJEjjr2uqrlJZwe3AOnwJ-2lVi8K97DR9tiqbGgLJeH2AosPvrVoDGKrJIizDjc~cCBrfcSQg132vej6t5ZnrbRJ6IbgdTMhppIwfqnFKYQrUCGEVeP~RAgoaT4RZn8VWry12XATWjL5rUuasQU0Ut1B0BOhhqwRslPukmseDeoGgaPJVPgKg94OuEe7L993cA-V20~mfdQBkmwFapg__&Key-Pair-Id=DLVR'
[download] Destination: D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4
[debug] ffmpeg command line: ffmpeg -y -loglevel verbose -headers "Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0
" -i "https://22-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/index-v1-a1.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMi1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=bwXuv7dIBxmok6vwkc8-AvUjfqF~RjUX5~RN0fnl-mSyhfD~MGA0QsE-FycQw6DqmMxVFiGlO0bTfBGr4DcB2fw0cj7MRxpnOB5HfB-658xcE0bis-g7zhnn9p9BRfLFPQsCJEjjr2uqrlJZwe3AOnwJ-2lVi8K97DR9tiqbGgLJeH2AosPvrVoDGKrJIizDjc~cCBrfcSQg132vej6t5ZnrbRJ6IbgdTMhppIwfqnFKYQrUCGEVeP~RAgoaT4RZn8VWry12XATWjL5rUuasQU0Ut1B0BOhhqwRslPukmseDeoGgaPJVPgKg94OuEe7L993cA-V20~mfdQBkmwFapg__&Key-Pair-Id=DLVR" -c copy -f mp4 "-bsf:a" aac_adtstoasc "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4.part"
ffmpeg version N-92246-gc2ac3b8e6a Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20181017
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth
  libavutil      56. 19.101 / 56. 19.101
  libavcodec     58. 33.102 / 58. 33.102
  libavformat    58. 19.102 / 58. 19.102
  libavdevice    58.  4.106 / 58.  4.106
  libavfilter     7. 37.100 /  7. 37.100
  libswscale      5.  2.100 /  5.  2.100
  libswresample   3.  2.100 /  3.  2.100
  libpostproc    55.  2.100 / 55.  2.100
[tcp @ 00000234143af2c0] Starting connection attempt to 38.122.181.254 port 443
[tcp @ 00000234143af2c0] Successfully connected to 38.122.181.254 port 443
[hls,applehttp @ 00000234143ab480] HLS request for url 'https://23-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/seg-1-v1-a1.ts?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMy1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=YGgsodew3J4ZrDgj1plYBlsJm8rT5FuzLF7-GMK4c5gRbOGj9evSPA0NpvqqHKUc8SiL6n1Oz6s0LDfN8m9vqtRjpl9Ohp4JcdtBGu7FtD~3KjjtZS6NjJ2NTfxFZQ4rZq9JALT~kHX5kCRFUeHv2tqIIgt6-N1fAEhB5fZoDzCcNpTsOlBME4c6JpJS05cUBhcm5pM5SBn9JcXoMBa5UIA43YFrbyNn4FT7eEpcVOWmgnZKUvDsggdFPKtcPFqSsyhj22YlSaS-m8TSz0u2ziWGz8DyMxd-s~Mx8OeunFLztMkJB9MDaCTjTk2r7gE1QnGWAz92q6xNkNuzHtvMmA__&Key-Pair-Id=DLVR', offset 0, playlist 0
[hls,applehttp @ 00000234143ab480] Opening 'https://a-vrv.akamaized.net/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/encryption.key?t=exp=1540744824~acl=/evs/5f6e23c89ff18051657bbbb765a9970d/assets/*~hmac=7d0c28e43f90d9b8e90c7b463456dd47e4c01ddad200840386a9fc30e9e195ec' for reading
[tcp @ 00000234143b2f80] Starting connection attempt to 184.50.238.48 port 443
[tcp @ 00000234143b2f80] Successfully connected to 184.50.238.48 port 443
[AVIOContext @ 000002341441cb40] Statistics: 16 bytes read, 0 seeks
[hls,applehttp @ 00000234143ab480] Opening 'crypto+https://23-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/seg-1-v1-a1.ts?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMy1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=YGgsodew3J4ZrDgj1plYBlsJm8rT5FuzLF7-GMK4c5gRbOGj9evSPA0NpvqqHKUc8SiL6n1Oz6s0LDfN8m9vqtRjpl9Ohp4JcdtBGu7FtD~3KjjtZS6NjJ2NTfxFZQ4rZq9JALT~kHX5kCRFUeHv2tqIIgt6-N1fAEhB5fZoDzCcNpTsOlBME4c6JpJS05cUBhcm5pM5SBn9JcXoMBa5UIA43YFrbyNn4FT7eEpcVOWmgnZKUvDsggdFPKtcPFqSsyhj22YlSaS-m8TSz0u2ziWGz8DyMxd-s~Mx8OeunFLztMkJB9MDaCTjTk2r7gE1QnGWAz92q6xNkNuzHtvMmA__&Key-Pair-Id=DLVR' for reading
[tcp @ 0000023414435200] Starting connection attempt to 38.122.181.254 port 443
[tcp @ 0000023414435200] Successfully connected to 38.122.181.254 port 443
[h264 @ 0000023414828940] Reinit context to 432x240, pix_fmt: yuv420p
Input #0, hls,applehttp, from 'https://22-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/index-v1-a1.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMi1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=bwXuv7dIBxmok6vwkc8-AvUjfqF~RjUX5~RN0fnl-mSyhfD~MGA0QsE-FycQw6DqmMxVFiGlO0bTfBGr4DcB2fw0cj7MRxpnOB5HfB-658xcE0bis-g7zhnn9p9BRfLFPQsCJEjjr2uqrlJZwe3AOnwJ-2lVi8K97DR9tiqbGgLJeH2AosPvrVoDGKrJIizDjc~cCBrfcSQg132vej6t5ZnrbRJ6IbgdTMhppIwfqnFKYQrUCGEVeP~RAgoaT4RZn8VWry12XATWjL5rUuasQU0Ut1B0BOhhqwRslPukmseDeoGgaPJVPgKg94OuEe7L993cA-V20~mfdQBkmwFapg__&Key-Pair-Id=DLVR':
  Duration: 00:23:40.01, start: 0.101000, bitrate: N/A
  Program 0
    Metadata:
      variant_bitrate : 0
    Stream #0:0: Video: h264 (Constrained Baseline), 1 reference frame ([27][0][0][0] / 0x001B), yuv420p(left), 428x240 (432x240) [SAR 320:321 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 22050 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
    Stream #0:2: Data: timed_id3 (ID3  / 0x20334449)
    Metadata:
      variant_bitrate : 0
Output #0, mp4, to 'file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 ΓÇô A Country Where People Can Kill Others.mp4.part':
  Metadata:
    encoder         : Lavf58.19.102
    Stream #0:0: Video: h264 (Constrained Baseline), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 428x240 (0x0) [SAR 320:321 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn, 90k tbc
    Metadata:
      variant_bitrate : 0
    Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 0
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help

No more output streams to write to, finishing.
frame=34046 fps=270 q=-1.0 Lsize=   69505kB time=00:23:40.08 bitrate= 401.0kbits/s speed=11.3x
video:57702kB audio:11095kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.028981%
Input file #0 (https://22-ak-df9fb22a88ad420abf8c365738dd37cb.vip1-ord1.dlvr1.net/8c4dcb12-d93e-11e8-aadf-c6e13197ba04/evs/5f6e23c89ff18051657bbbb765a9970d/assets/edd7675b755ad90f662164327adf3a55_3321387.mp4/index-v1-a1.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly8yMi1hay1kZjlmYjIyYTg4YWQ0MjBhYmY4YzM2NTczOGRkMzdjYi52aXAxLW9yZDEuZGx2cjEubmV0LzhjNGRjYjEyLWQ5M2UtMTFlOC1hYWRmLWM2ZTEzMTk3YmEwNC9ldnMvNWY2ZTIzYzg5ZmYxODA1MTY1N2JiYmI3NjVhOTk3MGQvYXNzZXRzLyoiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDA3NDQ4MjR9fX1dfQ__&Signature=bwXuv7dIBxmok6vwkc8-AvUjfqF~RjUX5~RN0fnl-mSyhfD~MGA0QsE-FycQw6DqmMxVFiGlO0bTfBGr4DcB2fw0cj7MRxpnOB5HfB-658xcE0bis-g7zhnn9p9BRfLFPQsCJEjjr2uqrlJZwe3AOnwJ-2lVi8K97DR9tiqbGgLJeH2AosPvrVoDGKrJIizDjc~cCBrfcSQg132vej6t5ZnrbRJ6IbgdTMhppIwfqnFKYQrUCGEVeP~RAgoaT4RZn8VWry12XATWjL5rUuasQU0Ut1B0BOhhqwRslPukmseDeoGgaPJVPgKg94OuEe7L993cA-V20~mfdQBkmwFapg__&Key-Pair-Id=DLVR):
  Input stream #0:0 (video): 34046 packets read (59087231 bytes);
  Input stream #0:1 (audio): 30580 packets read (11575176 bytes);
  Input stream #0:2 (data): 0 packets read (0 bytes);
  Total: 64626 packets (70662407 bytes) demuxed
Output file #0 (file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 ΓÇô A Country Where People Can Kill Others.mp4.part):
  Output stream #0:0 (video): 34046 packets muxed (59087231 bytes);
  Output stream #0:1 (audio): 30580 packets muxed (11361116 bytes);
  Total: 64626 packets (70448347 bytes) muxed
[AVIOContext @ 00000234148b1e80] Statistics: 14 seeks, 281 writeouts
[AVIOContext @ 00000234148afbc0] Statistics: 65704 bytes read, 0 seeks
[ffmpeg] Downloaded 71173247 bytes
[download] 100% of 67.88MiB in 02:07
[ffmpeg] Embedding subtitles in 'D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4'
[debug] ffmpeg command line: ffmpeg -y -i "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.mp4" -i "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.enUS.ass" -map 0 -c copy -map "-0:s" "-c:s" mov_text -map "1:0" "-metadata:s:s:0" "language=eng" "file:D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.temp.mp4"
Deleting original file D:\Kino's Journey -the Beautiful World- the Animated Series Episode 1 – A Country Where People Can Kill Others.enUS.ass (pass -k to keep)

Same output. --merge-output-format mkv only works when the video or audio stream is incompatible with the mp4 container. Subtitle format is ignored, apparently.

percheperche commented 6 years ago

Yes, it should be enabled by default output .mkv Still, you can "bypass" this doing: youtube-dl.exe -o 'D:/%(title)s.mkv' -f worst --write-sub--sub-lang enUS --embed-subs https://www.crunchyroll.com/kinos-journey-the-beautiful-world-the-animated-series/episode-1-a-country-where-people-can-kill-others-749557 So, now you'll have .enUS.ass file and .temp.mkv file, and a soft-sub .mkv file because of 'D:/%(title)s.mkv'

darkhelmet2016 commented 5 years ago

Soft subs can be embedded in MP4. The ass subs need to be converted in to a sub format compatible with with quictime pro. There is a funimation program on a get repository that will add tx3g softsubs to an mp4. Have tested a file on my apple device.

Text ID : 3 Format : Timed Text Muxing mode : sbtl Codec ID : tx3g Duration : 23 min 46 s Bit rate mode : Variable Bit rate : 99 b/s Stream size : 17.3 KiB (0%) Language : English Default : Yes Forced : No Alternate group : 3

aemmadi commented 5 years ago

@darkhelmet2016 yes, but having timed_text sub format for anime is not suitable as many videos have multiple subtitle layers involved, and they can be perfectly placed using ASS. However, timed text sacrifices one of those layers and displays everything as one (the main subtitles).

The only way I have found to include crunchyroll subs is by doing a --recode-video mkv and then --embed-subs this encodes a whole new rip but in mkv container which supports ASS subtitles. The only problem with this is, it is a very CPU intensive process, it took my PC 13 min to re-encode the video from mp4 to mkv, wheras it only took 2 min to download the native mp4 version.

darkhelmet2016 commented 5 years ago

You have to do no such thing. --sub-lang enUS --write-sub --convert-subs srt --embed-subs works for Crunchyroll. This will give an mp4 with srt subs. Have used this on a front end program. -o ".\videoDownloads\%(title)s-%(id)s-%(height)sp.%(ext)s" --add-metadata --sub-lang enUS --write-sub --convert-subs srt --embed-subs This is if you want mp4 with sub output. ffmpeg converts the ass subs from the crunchy site to srt. If you just want .ass subs to mux in then don't have them added to the file and just use mkv merge to mux the mp4 file. Just have it write but not embed or covert subs if you need .ass and it will write the subs from the site and output it to where you tell it. http://ffmpeg.org/documentation.html Or are you looking for actual hard subs imprinted in to the video?

aemmadi commented 5 years ago

@darkhelmet2016 Nope, even when I did do convert-subs srt it still embeds a timed text subtitle.

Text
ID                          : 3
Format                      : Timed Text
Muxing mode                 : sbtl
Codec ID                    : tx3g
Duration                    : 1 min 10 s
Bit rate mode               : Variable
Bit rate                    : 108 b/s
Stream size                 : 956 Bytes (0%)
Language                    : English
Default                     : Yes
Forced                      : No
Alternate group             : 3

i ran this command youtube-dl.exe https://www.crunchyroll.com/relife --sub-lang enUS --write-sub --convert-subs srt --embed-subs

aemmadi commented 5 years ago

I just want to embed subs within the video, not burn them in. The problem with embedding Timed Text subs is that sometimes during multiple conversations in anime the subs are mixed together and gets really confusing for the viewer to understand

darkhelmet2016 commented 5 years ago

That is because mov_text is timed text which is what the thread was looking for. Like said if you just want ass subs do not embed them but leave them as a separate file and open up mkv merge and mux the ass subs with the video audio. What episode are you trying to get? https://github.com/seiya-dev/crunchyroll-downloader-nx will download crunchy videos in mkv with ass sub and keep what styling is in the dumb subs. If the program you are using does not decrypt the subs right it will not matter what you use. It has to be able to decrypt the subs using the proper styling libs or what ever is compiled to keep sub formatting.

aemmadi commented 5 years ago

@darkhelmet2016 thanks you for the link! that was exactly what I wanted.

darkhelmet2016 commented 5 years ago

NP. but with srt you are going to be limited what you can do anyway, or you can open them in a program that will give you srt but will still wind up with something like this.

1 00:00:59,950 --> 00:01:01,830 What a weird dream.

2 00:01:03,410 --> 00:01:06,040 My name is Iwatani Naofumi.

3 00:01:06,670 --> 00:01:09,670 {\an8}I'm a second-year student in college, and kind of an otaku.

4 00:01:14,260 --> 00:01:15,550 Sunny day, huh?

5 00:01:17,760 --> 00:01:22,510 I managed to save my brother from falling in with the wrong crowd,

6 00:01:22,510 --> 00:01:25,980 and mom and dad thanked me by letting me live at home, allowance included.

7 00:01:26,390 --> 00:01:31,020 With no need to work part-time, I got to enjoy an idyllic otaku life.

8 00:01:36,280 --> 00:01:40,620 {\an8}That said, I certainly wasn't one of your so-called shut-ins.

http://www.aegisub.org/ will do sub conversion too.

ffmpeg would need to be compiled with libass think the program is to even do subs properly from crunchy. A lot of downloaders for the site use some kind of lb package from python to java.

aemmadi commented 5 years ago

ahh, i guess embedding ASS is the only option then

darkhelmet2016 commented 5 years ago

Sadly srt is more for things like closed caption subbing or basic subs with min formatting. You can try messing with aegisub and see what it will keep as srt output.

aemmadi commented 5 years ago

crunchy is working perfectly, worked straight off the bat. I might contribute some to the project like adding more customization regarding output/renaming of files, sub-lang selection, and a couple minor tweaks.

darkhelmet2016 commented 5 years ago

Ok, just get with him since it his program. Have only been submitting bugs for it. But will keep working on this one to get a somewhat working down-loader for Crunchy.