[FFmpeg-trac] #7919(ffmpeg:new): Live extracting subtitles from the stream
FFmpeg
trac at avcodec.org
Thu May 23 13:56:11 EEST 2019
#7919: Live extracting subtitles from the stream
-------------------------------------+-------------------------------------
Reporter: | Type: defect
MishkaPetran |
Status: new | Priority: normal
Component: ffmpeg | Version: 4.1
Keywords: ffmpeg, | Blocked By:
subtitle, live, stream, m3u8, |
webvtt, vtt |
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
'''Good day'''
Experiencing problems when creating streaming playback.
I get the input file in parts (from webtorrent), in the process of
downloading it I will convert it using ffmpeg and give it to the user in
the live mode. I can switch audio and video streams. There is a problem
with the subtitles.
'''I use the following options:'''
{{{
ffmpeg -i '/home/mishkapetran/Загрузки/Rick.mkv' \
-map 0:v:0 -c:v libx264 -profile:v baseline -preset:v superfast -b:v 1000k
-level 3.0 -strict -2 -s 480x360 -f hls -hls_time 10 -hls_list_size 0
-segment_list rick_360p -hls_segment_filename
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_360p_video_%d.ts
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_360p_video.m3u8
\
-map 0:v:0 -c:v libx264 -profile:v baseline -preset:v superfast -b:v 1000k
-level 3.0 -strict -2 -s 858x480 -f hls -hls_time 10 -hls_list_size 0
-segment_list rick_480p -hls_segment_filename
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_480p_video_%d.ts
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_480p_video.m3u8
\
-map 0:v:0 -c:v libx264 -profile:v baseline -preset:v superfast -b:v 1000k
-level 3.0 -strict -2 -s 1280x720 -f hls -hls_time 10 -hls_list_size 0
-segment_list rick_720p -hls_segment_filename
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_720p_video_%d.ts
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_720p_video.m3u8
\
-map 0:1 -c:a aac -b:a 128k -ar 44100 -ac 2 -f hls -hls_time 10
-hls_list_size 0 -segment_list rick_audio_rus -hls_segment_filename
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_rus_audio_%d.aac
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_rus_audio.m3u8
\
-map 0:2 -c:a aac -b:a 128k -ar 44100 -ac 2 -f hls -hls_time 10
-hls_list_size 0 -segment_list rick_audio_eng -hls_segment_filename
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_eng_audio_%d.aac
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_eng_audio.m3u8
}}}
The average conversion speed on my local PC is about 2.5x (without
subtitles).
As soon as I add subtitles to the options, the speed drops to 0.5x, and
this is not acceptable for streaming.
'''My options for subtitles:'''
{{{
-map 0:3 -f segment -segment_time 10 -segment_format webvtt
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_sub_eng-%d.vtt
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_sub_eng.m3u8
\
-map 0:4 -f segment -segment_time 10 -segment_format webvtt
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_sub_rus-%d.vtt
/home/mishkapetran/m3u8_test/hls_test/video_stream_source/rick_sub_rus.m3u8
}}}
'''I noticed:'''
1) If you convert to .webvtt, then .ts video elements are created along
with the subtitle files.
2) If I use just .vtt, without fragments, then writing to the file occurs
only after the file is completely processed. But for the .m3u8 playlist,
the .vtt format is not suitable, so it will also stick to processing in
parallel.
Tell me how you can implement the extraction of subtitles in my case.
'''My ffmpeg:'''
{{{
ffmpeg version 4.1.3-0york1~18.04 Copyright (c) 2000-2019 the FFmpeg
developers
built with gcc 7 (Ubuntu 7.3.0-27ubuntu1~18.04)
configuration: --prefix=/usr --extra-version='0york1~18.04'
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2
--enable-nonfree --enable-libfdk-aac --enable-libdc1394 --enable-libdrm
--enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavdevice 58. 5.100 / 58. 5.100
libavfilter 7. 40.101 / 7. 40.101
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options]
outfile}...
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7919>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list