Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > alt.comp.os.windows-10 > #179270 > unrolled thread
| Started by | Oliver <ollie@invalid.net> |
|---|---|
| First post | 2024-10-15 07:12 -0600 |
| Last post | 2025-03-23 16:00 +0000 |
| Articles | 20 on this page of 24 — 7 participants |
Back to article view | Back to alt.comp.os.windows-10
Burn caption into video Oliver <ollie@invalid.net> - 2024-10-15 07:12 -0600
Re: Burn caption into video Alan Browne <bitbucket@blackhole.com> - 2024-10-15 09:56 -0400
Re: Burn caption into video Big Al <alan@invalid.com> - 2024-10-15 10:14 -0400
Re: Burn caption into video Big Al <alan@invalid.com> - 2024-10-15 10:15 -0400
Re: Burn caption into video Alan Browne <bitbucket@blackhole.com> - 2024-10-15 10:20 -0400
Re: Burn caption into video Big Al <alan@invalid.com> - 2024-10-15 10:51 -0400
Re: Burn caption into video Alan Browne <bitbucket@blackhole.com> - 2024-10-15 15:48 -0400
Re: Burn caption into video Paul <nospam@needed.invalid> - 2024-10-15 13:12 -0400
Re: Burn caption into video Alan Browne <bitbucket@blackhole.com> - 2024-10-15 15:49 -0400
Re: Burn caption into video Alan Browne <bitbucket@blackhole.com> - 2024-10-15 10:18 -0400
Re: Burn caption into video Paul <nospam@needed.invalid> - 2024-10-15 13:24 -0400
Re: Burn caption into video Oliver <ollie@invalid.net> - 2024-10-15 17:53 -0600
Re: Burn caption into video Paul <nospam@needed.invalid> - 2024-10-16 06:21 -0400
Re: Burn caption into video "Carlos E.R." <robin_listas@es.invalid> - 2024-10-15 22:22 +0200
Re: Burn caption into video Oliver <ollie@invalid.net> - 2025-02-26 00:52 -0700
Re: Burn caption into video Geoff <geoff@nospamgeoffwood.org> - 2025-02-27 09:18 +1300
Re: Burn caption into video Oliver <ollie@invalid.net> - 2025-02-26 17:28 -0700
Re: Burn caption into video Geoff <geoff@nospamgeoffwood.org> - 2025-02-27 15:00 +1300
Re: Burn caption into video Oliver <ollie@invalid.net> - 2025-02-27 11:47 -0700
Re: Burn caption into video Geoff <geoff@nospamgeoffwood.org> - 2025-02-28 11:36 +1300
Re: Burn caption into video Oliver <ollie@invalid.net> - 2025-02-27 17:33 -0700
Re: Burn caption into video Geoff <geoff@nospamgeoffwood.org> - 2025-02-28 15:15 +1300
Re: Burn caption into video Geoff <geoff@nospamgeoffwood.org> - 2025-02-28 15:20 +1300
Re: Burn caption into video candycanearter07 <candycanearter07@candycanearter07.nomail.afraid> - 2025-03-23 16:00 +0000
Page 1 of 2 [1] 2 Next page →
| From | Oliver <ollie@invalid.net> |
|---|---|
| Date | 2024-10-15 07:12 -0600 |
| Subject | Burn caption into video |
| Message-ID | <velpnm$1ne4q$1@dont-email.me> |
What's the best way on Windows to offline embed the text in an SRT companion file to an MP4 video before uploading a short video clip to a web site? I made a short (ten second) video with my phone to upload to a web site. I tried a few methods to remove the exif metadata which probably worked. Then I created a simple SRT text file with the desired captions. 1 00:00:05,000 --> 00:00:10,000 This is the first line of text. This is the second line of text Then I tried to burn in (embed, hardcode, merge) that SRT into the MP4 so that I only upload a single MP4 with a caption on the 2nd half of the MP4. I tried Handbrake, VLC, MkvToMp4, VidCoder, Shotcut & a few others (all of which failed but probably they failed mostly due to my own user error or from my following of bad AI-generated instructions found in my searches). Given that it's not as simple as it may seem, what method on Windows do you use to burn an SRT file into a short video prior to upload to a web site?
[toc] | [next] | [standalone]
| From | Alan Browne <bitbucket@blackhole.com> |
|---|---|
| Date | 2024-10-15 09:56 -0400 |
| Message-ID | <iwuPO.62493$Enpe.28329@fx38.iad> |
| In reply to | #179270 |
On 2024-10-15 09:12, Oliver wrote: > What's the best way on Windows to offline embed the text in an SRT > companion file to an MP4 video before uploading a short video clip to a web > site? > > I made a short (ten second) video with my phone to upload to a web site. > I tried a few methods to remove the exif metadata which probably worked. > > Then I created a simple SRT text file with the desired captions. > 1 > 00:00:05,000 --> 00:00:10,000 > > This is the first line of text. > This is the second line of text > > Then I tried to burn in (embed, hardcode, merge) that SRT into the MP4 so > that I only upload a single MP4 with a caption on the 2nd half of the MP4. > > I tried Handbrake, VLC, MkvToMp4, VidCoder, Shotcut & a few others (all of > which failed but probably they failed mostly due to my own user error or > from my following of bad AI-generated instructions found in my searches). > > Given that it's not as simple as it may seem, what method on Windows do you > use to burn an SRT file into a short video prior to upload to a web site? There may be a way in exiftool. Da Vinci Resolve will do this, but it's a steep learning curve - though there is probably a YouTube out there for it. Da Vinci Resolve is free for non-commercial output. -- "It would be a measureless disaster if Russian barbarism overlaid the culture and independence of the ancient States of Europe." Winston Churchill
[toc] | [prev] | [next] | [standalone]
| From | Big Al <alan@invalid.com> |
|---|---|
| Date | 2024-10-15 10:14 -0400 |
| Message-ID | <veltcq$1nj3g$2@dont-email.me> |
| In reply to | #179273 |
On 10/15/24 09:56 AM, Alan Browne wrote: > On 2024-10-15 09:12, Oliver wrote: >> What's the best way on Windows to offline embed the text in an SRT >> companion file to an MP4 video before uploading a short video clip to a web >> site? >> >> I made a short (ten second) video with my phone to upload to a web site. >> I tried a few methods to remove the exif metadata which probably worked. >> >> Then I created a simple SRT text file with the desired captions. >> 1 >> 00:00:05,000 --> 00:00:10,000 >> >> This is the first line of text. >> This is the second line of text >> >> Then I tried to burn in (embed, hardcode, merge) that SRT into the MP4 so >> that I only upload a single MP4 with a caption on the 2nd half of the MP4. >> >> I tried Handbrake, VLC, MkvToMp4, VidCoder, Shotcut & a few others (all of >> which failed but probably they failed mostly due to my own user error or >> from my following of bad AI-generated instructions found in my searches). >> >> Given that it's not as simple as it may seem, what method on Windows do you >> use to burn an SRT file into a short video prior to upload to a web site? > > There may be a way in exiftool. > > Da Vinci Resolve will do this, but it's a steep learning curve - though there is probably a YouTube > out there for it. > > Da Vinci Resolve is free for non-commercial output. > Why not just use some video editor and overlay the text? Then save the video and upload. -- Linux Mint 21.3, Cinnamon 6.0.4, Kernel 5.15.0-122-generic Al
[toc] | [prev] | [next] | [standalone]
| From | Big Al <alan@invalid.com> |
|---|---|
| Date | 2024-10-15 10:15 -0400 |
| Message-ID | <veltep$1nj3g$3@dont-email.me> |
| In reply to | #179275 |
On 10/15/24 10:14 AM, Big Al wrote: > On 10/15/24 09:56 AM, Alan Browne wrote: >> On 2024-10-15 09:12, Oliver wrote: >>> What's the best way on Windows to offline embed the text in an SRT >>> companion file to an MP4 video before uploading a short video clip to a web >>> site? >>> >>> I made a short (ten second) video with my phone to upload to a web site. >>> I tried a few methods to remove the exif metadata which probably worked. >>> >>> Then I created a simple SRT text file with the desired captions. >>> 1 >>> 00:00:05,000 --> 00:00:10,000 >>> >>> This is the first line of text. >>> This is the second line of text >>> >>> Then I tried to burn in (embed, hardcode, merge) that SRT into the MP4 so >>> that I only upload a single MP4 with a caption on the 2nd half of the MP4. >>> >>> I tried Handbrake, VLC, MkvToMp4, VidCoder, Shotcut & a few others (all of >>> which failed but probably they failed mostly due to my own user error or >>> from my following of bad AI-generated instructions found in my searches). >>> >>> Given that it's not as simple as it may seem, what method on Windows do you >>> use to burn an SRT file into a short video prior to upload to a web site? >> >> There may be a way in exiftool. >> >> Da Vinci Resolve will do this, but it's a steep learning curve - though there is probably a >> YouTube out there for it. >> >> Da Vinci Resolve is free for non-commercial output. >> > Why not just use some video editor and overlay the text? Then save the video and upload. Of course that might be what DaVinci is. ... -- Linux Mint 21.3, Cinnamon 6.0.4, Kernel 5.15.0-122-generic Al
[toc] | [prev] | [next] | [standalone]
| From | Alan Browne <bitbucket@blackhole.com> |
|---|---|
| Date | 2024-10-15 10:20 -0400 |
| Message-ID | <NSuPO.62497$Enpe.5611@fx38.iad> |
| In reply to | #179276 |
On 2024-10-15 10:15, Big Al wrote: >> Why not just use some video editor and overlay the text? Then save >> the video and upload. > Of course that might be what DaVinci is. ... Oh, you replied to a post without checking. How newbie-ish. Feels bad huh! 😇 -- "It would be a measureless disaster if Russian barbarism overlaid the culture and independence of the ancient States of Europe." Winston Churchill
[toc] | [prev] | [next] | [standalone]
| From | Big Al <alan@invalid.com> |
|---|---|
| Date | 2024-10-15 10:51 -0400 |
| Message-ID | <velvho$1nj3g$4@dont-email.me> |
| In reply to | #179278 |
On 10/15/24 10:20 AM, Alan Browne wrote: > On 2024-10-15 10:15, Big Al wrote: > >>> Why not just use some video editor and overlay the text? Then save the video and upload. >> Of course that might be what DaVinci is. ... > > Oh, you replied to a post without checking. How newbie-ish. > Feels bad huh! 😇 > Olde, not newbie, just sleep walking. -- Linux Mint 21.3, Cinnamon 6.0.4, Kernel 5.15.0-122-generic Al
[toc] | [prev] | [next] | [standalone]
| From | Alan Browne <bitbucket@blackhole.com> |
|---|---|
| Date | 2024-10-15 15:48 -0400 |
| Message-ID | <CGzPO.6646$Aty4.1152@fx03.iad> |
| In reply to | #179280 |
On 2024-10-15 10:51, Big Al wrote: > On 10/15/24 10:20 AM, Alan Browne wrote: >> On 2024-10-15 10:15, Big Al wrote: >> >>>> Why not just use some video editor and overlay the text? Then save >>>> the video and upload. >>> Of course that might be what DaVinci is. ... >> >> Oh, you replied to a post without checking. How newbie-ish. >> Feels bad huh! 😇 >> > Olde, not newbie, just sleep walking. Never happens to me. Never. Not once. No! Really. 🙄 -- "It would be a measureless disaster if Russian barbarism overlaid the culture and independence of the ancient States of Europe." Winston Churchill
[toc] | [prev] | [next] | [standalone]
| From | Paul <nospam@needed.invalid> |
|---|---|
| Date | 2024-10-15 13:12 -0400 |
| Message-ID | <vem7p1$1pk6p$1@dont-email.me> |
| In reply to | #179278 |
On Tue, 10/15/2024 10:20 AM, Alan Browne wrote: > On 2024-10-15 10:15, Big Al wrote: > >>> Why not just use some video editor and overlay the text? Then save the video and upload. >> Of course that might be what DaVinci is. ... > > Oh, you replied to a post without checking. How newbie-ish. > Feels bad huh! 😇 > You should try the prescription he's on. Paul
[toc] | [prev] | [next] | [standalone]
| From | Alan Browne <bitbucket@blackhole.com> |
|---|---|
| Date | 2024-10-15 15:49 -0400 |
| Message-ID | <yHzPO.6647$Aty4.1302@fx03.iad> |
| In reply to | #179285 |
On 2024-10-15 13:12, Paul wrote: > On Tue, 10/15/2024 10:20 AM, Alan Browne wrote: >> On 2024-10-15 10:15, Big Al wrote: >> >>>> Why not just use some video editor and overlay the text? Then save the video and upload. >>> Of course that might be what DaVinci is. ... >> >> Oh, you replied to a post without checking. How newbie-ish. >> Feels bad huh! 😇 >> > You should try the prescription he's on. I don't do drugs. Especially if they are prescribed. 🤣 -- "It would be a measureless disaster if Russian barbarism overlaid the culture and independence of the ancient States of Europe." Winston Churchill
[toc] | [prev] | [next] | [standalone]
| From | Alan Browne <bitbucket@blackhole.com> |
|---|---|
| Date | 2024-10-15 10:18 -0400 |
| Message-ID | <SQuPO.62496$Enpe.56300@fx38.iad> |
| In reply to | #179275 |
On 2024-10-15 10:14, Big Al wrote: > On 10/15/24 09:56 AM, Alan Browne wrote: >> Da Vinci Resolve will do this, but it's a steep learning curve - >> though there is probably a YouTube out there for it. >> >> Da Vinci Resolve is free for non-commercial output. >> > Why not just use some video editor and overlay the text? Then save the > video and upload. Da Vinci Resolve mean anything to you? -- "It would be a measureless disaster if Russian barbarism overlaid the culture and independence of the ancient States of Europe." Winston Churchill
[toc] | [prev] | [next] | [standalone]
| From | Paul <nospam@needed.invalid> |
|---|---|
| Date | 2024-10-15 13:24 -0400 |
| Message-ID | <vem8fu$1po1s$1@dont-email.me> |
| In reply to | #179277 |
On Tue, 10/15/2024 10:18 AM, Alan Browne wrote: > On 2024-10-15 10:14, Big Al wrote: >> On 10/15/24 09:56 AM, Alan Browne wrote: > >>> Da Vinci Resolve will do this, but it's a steep learning curve - though there is probably a YouTube out there for it. >>> >>> Da Vinci Resolve is free for non-commercial output. >>> >> Why not just use some video editor and overlay the text? Then save the video and upload. > > Da Vinci Resolve mean anything to you? > These people have horrible presentation for web pages, but it is what it is. https://www.baeldung.com/linux/subtitles-ffmpeg sample_video_subtitle_ffmpeg.srt subtitle file 1 00:00:04,700 --> 00:00:05,090 You know what 2 00:00:05,100 --> 00:00:05,990 we should all do. 3 00:00:07,200 --> 00:00:08,690 Go see a musical. 4 00:00:11,900 --> 00:00:12,490 sure, 5 00:00:14,770 --> 00:00:16,530 and you know which one we should see 6 00:00:17,580 --> 00:00:19,880 The 1996, Tony Award winner. ffmpeg -i sample_video_ffmpeg.mp4 -vf subtitles=sample_video_subtitle_ffmpeg.srt output_srt.mp4 That seems to be missing a -c copy, but maybe all the tracks will be there. Using something like ffprobe.exe afterwards on output_srt.mp4 , should indicate whether an additional new track is present. You don't absolutely need an editor for this. I like FFMPEG because it's the Swiss Army Knife. It has enough constructs inside to make a full-blown editor and be the engine for it. It's that good. You can do fade-in and fade-out for example, from the command line, splice bits of tracks together, and so on. Of course GUI people don't like that, but you don't get to see just how good it is, until you find a posting from someone who edits videos all day long for Internet use. And they'll show you some amazing multi-line commands. Paul
[toc] | [prev] | [next] | [standalone]
| From | Oliver <ollie@invalid.net> |
|---|---|
| Date | 2024-10-15 17:53 -0600 |
| Message-ID | <vemv97$1t9gr$1@dont-email.me> |
| In reply to | #179286 |
On Tue, 15 Oct 2024 13:24:16 -0400, Paul <nospam@needed.invalid> wrote
> ffmpeg -i sample_video_ffmpeg.mp4 -vf subtitles=sample_video_subtitle_ffmpeg.srt output_srt.mp4
>
> That seems to be missing a -c copy, but maybe all the tracks will be there.
>
> Using something like ffprobe.exe afterwards on output_srt.mp4 , should
> indicate whether an additional new track is present.
Using the simple ten second video clip shot from my phone and this simple
hand-crafted SRT file, the suggested command worked (almost) perfectly.
====================
1
00:00:05,000 --> 00:00:07,000
This is line 1.
This is line 2.
====================
ffmpeg -i test.mp4 -vf subtitles=test.srt merged.mp4
ffprobe merged.mp4
move test.srt test.bak
====================
Thanks to your suggested ffmpeg melding of files command,
(most of) the SRT was hard coded merged into the video.
The only thing that didn't work is line 2 never showed up.
But I don't care about that as a line is enough to prove it works.
BTW, I have no idea what you mean by "all the tracks" but I did
run the suggested ffprobe command which output what you see below.
Did the ffprobe output indicate to you any possible missing tracks?
====================
ffmpeg -i test.mp4 -vf subtitles=test.srt merged.mp4
====================
ffmpeg version N-114515-gfa110c32b5-20240329 Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32-
--arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads
--enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma
--enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d
--enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
--enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame
--enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl
--enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt
--enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
--enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc
--enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
--extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags=
--cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib
--nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240329
libavutil 59. 10.100 / 59. 10.100
libavcodec 61. 4.100 / 61. 4.100
libavformat 61. 2.100 / 61. 2.100
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.100 / 10. 2.100
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: mp41avc1
creation_time : 2024-10-15T06:44:53.000000Z
encoder : vlc 3.0.20 stream output
encoder-eng : vlc 3.0.20 stream output
Duration: 00:00:06.23, start: 0.000000, bitrate: 14964 kb/s
Stream #0:0[0x1](eng): Audio: mp3 (mp3float) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2024-10-15T06:44:53.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 14827 kb/s, 30.17 fps, 30 tbr, 1000k tbn (default)
Metadata:
creation_time : 2024-10-15T06:44:53.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Side data:
displaymatrix: rotation of -90.00 degrees
[Parsed_subtitles_0 @ 0000025597957c00] libass API version: 0x1701000
[Parsed_subtitles_0 @ 0000025597957c00] libass source: commit: 649a7c2e1fc6f4188ea1a89968560715800b883d-dirty
[Parsed_subtitles_0 @ 0000025597957c00] Shaper: FriBidi 1.0.13 (SIMPLE) HarfBuzz-ng 8.3.1 (COMPLEX)
[Parsed_subtitles_0 @ 0000025597957c00] Using font provider directwrite (with GDI)
[Parsed_subtitles_0 @ 0000025597957c00] libass wasn't built with ASS_FEATURE_WRAP_UNICODE support
Stream mapping:
Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
Stream #0:0 -> #0:1 (mp3 (mp3float) -> aac (native))
Press [q] to stop, [?] for help
[Parsed_subtitles_0 @ 0000025597955800] libass API version: 0x1701000
[Parsed_subtitles_0 @ 0000025597955800] libass source: commit: 649a7c2e1fc6f4188ea1a89968560715800b883d-dirty
[Parsed_subtitles_0 @ 0000025597955800] Shaper: FriBidi 1.0.13 (SIMPLE) HarfBuzz-ng 8.3.1 (COMPLEX)
[Parsed_subtitles_0 @ 0000025597955800] Using font provider directwrite (with GDI)
[Parsed_subtitles_0 @ 0000025597955800] libass wasn't built with ASS_FEATURE_WRAP_UNICODE support
[libx264 @ 0000025597949c00] using SAR=1/1
[libx264 @ 0000025597949c00] using cpu capabilities: MMX2 SSE2Fast LZCNT
[libx264 @ 0000025597949c00] profile High, level 4.0, 4:2:0, 8-bit
[libx264 @ 0000025597949c00] 264 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'merged.mp4':
Metadata:
major_brand : isom
minor_version : 0
compatible_brands: mp41avc1
encoder : Lavf61.2.100
Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], q=2-31, 30 fps, 15360 tbn (default)
Metadata:
creation_time : 2024-10-15T06:44:53.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.4.100 libx264
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2024-10-15T06:44:53.000000Z
handler_name : SoundHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.4.100 aac
[Parsed_subtitles_0 @ 0000025597955800] fontselect: (Arial, 400, 0) -> ArialMT, 0, ArialMTdrop=0 speed=0.171x
[out#0/mp4 @ 00000255978eed00] video:11219KiB audio:102KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.081056%
frame= 189 fps=6.0 q=-1.0 Lsize= 11329KiB time=00:00:06.20 bitrate=14960.4kbits/s dup=1 drop=0 speed=0.196x
[libx264 @ 0000025597949c00] frame I:5 Avg QP:22.96 size: 94847
[libx264 @ 0000025597949c00] frame P:52 Avg QP:25.76 size: 67137
[libx264 @ 0000025597949c00] frame B:132 Avg QP:26.43 size: 56983
[libx264 @ 0000025597949c00] consecutive B-frames: 6.3% 1.1% 1.6% 91.0%
[libx264 @ 0000025597949c00] mb I I16..4: 17.9% 66.7% 15.4%
[libx264 @ 0000025597949c00] mb P I16..4: 10.8% 57.5% 8.8% P16..4: 13.8% 3.5% 1.1% 0.0% 0.0% skip: 4.5%
[libx264 @ 0000025597949c00] mb B I16..4: 5.7% 31.9% 6.5% B16..8: 26.3% 9.0% 1.6% direct: 3.6% skip:15.5% L0:53.8% L1:40.2% BI: 6.1%
[libx264 @ 0000025597949c00] 8x8 transform intra:72.9% inter:83.4%
[libx264 @ 0000025597949c00] coded y,uvDC,uvAC intra: 60.5% 46.3% 8.0% inter: 26.1% 30.2% 0.9%
[libx264 @ 0000025597949c00] i16 v,h,dc,p: 30% 28% 13% 29%
[libx264 @ 0000025597949c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 18% 19% 6% 8% 8% 8% 8% 9%
[libx264 @ 0000025597949c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 19% 13% 6% 11% 9% 10% 6% 7%
[libx264 @ 0000025597949c00] i8c dc,h,v,p: 55% 20% 22% 4%
[libx264 @ 0000025597949c00] Weighted P-Frames: Y:0.0% UV:0.0%
[libx264 @ 0000025597949c00] ref P L0: 56.6% 7.6% 20.0% 15.8%
[libx264 @ 0000025597949c00] ref B L0: 86.1% 10.1% 3.9%
[libx264 @ 0000025597949c00] ref B L1: 94.3% 5.7%
[libx264 @ 0000025597949c00] kb/s:14586.81
[aac @ 0000025599caa040] Qavg: 1098.128
====================
ffprobe.exe merged.mp4
====================
ffprobe version N-114515-gfa110c32b5-20240329 Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32-
--arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads
--enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma
--enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb
--disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d
--enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r
--enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame
--enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl
--enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt
--enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
--enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc
--enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi
--extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags=
--cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib
--nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240329
libavutil 59. 10.100 / 59. 10.100
libavcodec 61. 4.100 / 61. 4.100
libavformat 61. 2.100 / 61. 2.100
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.100 / 10. 2.100
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'merged.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf61.2.100
Duration: 00:00:06.30, start: 0.000000, bitrate: 14731 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], 14587 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc61.4.100 libx264
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 134 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
====================
[toc] | [prev] | [next] | [standalone]
| From | Paul <nospam@needed.invalid> |
|---|---|
| Date | 2024-10-16 06:21 -0400 |
| Message-ID | <veo42c$27emb$1@dont-email.me> |
| In reply to | #179293 |
On Tue, 10/15/2024 7:53 PM, Oliver wrote:
> On Tue, 15 Oct 2024 13:24:16 -0400, Paul <nospam@needed.invalid> wrote
>> ffmpeg -i sample_video_ffmpeg.mp4 -vf subtitles=sample_video_subtitle_ffmpeg.srt output_srt.mp4
>>
>> That seems to be missing a -c copy, but maybe all the tracks will be there.
>>
>> Using something like ffprobe.exe afterwards on output_srt.mp4 , should
>> indicate whether an additional new track is present.
>
> Using the simple ten second video clip shot from my phone and this simple hand-crafted SRT file, the suggested command worked (almost) perfectly. ====================
> 1
> 00:00:05,000 --> 00:00:07,000
>
> This is line 1.
> This is line 2.
> ====================
> ffmpeg -i test.mp4 -vf subtitles=test.srt merged.mp4
> ffprobe merged.mp4
> move test.srt test.bak
> ====================
> Thanks to your suggested ffmpeg melding of files command,
> (most of) the SRT was hard coded merged into the video.
>
> The only thing that didn't work is line 2 never showed up.
> But I don't care about that as a line is enough to prove it works.
>
> BTW, I have no idea what you mean by "all the tracks" but I did run the suggested ffprobe command which output what you see below.
>
> Did the ffprobe output indicate to you any possible missing tracks?
>
> ====================
> ffmpeg -i test.mp4 -vf subtitles=test.srt merged.mp4
> ====================
> ffmpeg version N-114515-gfa110c32b5-20240329 Copyright (c) 2000-2024 the FFmpeg developers
> built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
> configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads
> --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel
> --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240329 libavutil 59. 10.100 / 59. 10.100
> libavcodec 61. 4.100 / 61. 4.100
> libavformat 61. 2.100 / 61. 2.100
> libavdevice 61. 2.100 / 61. 2.100
> libavfilter 10. 2.100 / 10. 2.100
> libswscale 8. 2.100 / 8. 2.100
> libswresample 5. 2.100 / 5. 2.100
> libpostproc 58. 2.100 / 58. 2.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
> Metadata:
> major_brand : isom
> minor_version : 0
> compatible_brands: mp41avc1
> creation_time : 2024-10-15T06:44:53.000000Z
> encoder : vlc 3.0.20 stream output
> encoder-eng : vlc 3.0.20 stream output
> Duration: 00:00:06.23, start: 0.000000, bitrate: 14964 kb/s
> Stream #0:0[0x1](eng): Audio: mp3 (mp3float) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
> Metadata:
> creation_time : 2024-10-15T06:44:53.000000Z
> handler_name : SoundHandler
> vendor_id : [0][0][0][0]
> Stream #0:1[0x2](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 14827 kb/s, 30.17 fps, 30 tbr, 1000k tbn (default)
> Metadata:
> creation_time : 2024-10-15T06:44:53.000000Z
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
> Side data:
> displaymatrix: rotation of -90.00 degrees
> [Parsed_subtitles_0 @ 0000025597957c00] libass API version: 0x1701000
> [Parsed_subtitles_0 @ 0000025597957c00] libass source: commit: 649a7c2e1fc6f4188ea1a89968560715800b883d-dirty
> [Parsed_subtitles_0 @ 0000025597957c00] Shaper: FriBidi 1.0.13 (SIMPLE) HarfBuzz-ng 8.3.1 (COMPLEX)
> [Parsed_subtitles_0 @ 0000025597957c00] Using font provider directwrite (with GDI)
> [Parsed_subtitles_0 @ 0000025597957c00] libass wasn't built with ASS_FEATURE_WRAP_UNICODE support
> Stream mapping:
> Stream #0:1 -> #0:0 (h264 (native) -> h264 (libx264))
> Stream #0:0 -> #0:1 (mp3 (mp3float) -> aac (native))
> Press [q] to stop, [?] for help
> [Parsed_subtitles_0 @ 0000025597955800] libass API version: 0x1701000
> [Parsed_subtitles_0 @ 0000025597955800] libass source: commit: 649a7c2e1fc6f4188ea1a89968560715800b883d-dirty
> [Parsed_subtitles_0 @ 0000025597955800] Shaper: FriBidi 1.0.13 (SIMPLE) HarfBuzz-ng 8.3.1 (COMPLEX)
> [Parsed_subtitles_0 @ 0000025597955800] Using font provider directwrite (with GDI)
> [Parsed_subtitles_0 @ 0000025597955800] libass wasn't built with ASS_FEATURE_WRAP_UNICODE support
> [libx264 @ 0000025597949c00] using SAR=1/1
> [libx264 @ 0000025597949c00] using cpu capabilities: MMX2 SSE2Fast LZCNT
> [libx264 @ 0000025597949c00] profile High, level 4.0, 4:2:0, 8-bit
> [libx264 @ 0000025597949c00] 264 - core 164 - H.264/MPEG-4 AVC codec - Copyleft 2003-2024 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
> Output #0, mp4, to 'merged.mp4':
> Metadata:
> major_brand : isom
> minor_version : 0
> compatible_brands: mp41avc1
> encoder : Lavf61.2.100
> Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], q=2-31, 30 fps, 15360 tbn (default)
> Metadata:
> creation_time : 2024-10-15T06:44:53.000000Z
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
> encoder : Lavc61.4.100 libx264
> Side data:
> cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
> Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)
> Metadata:
> creation_time : 2024-10-15T06:44:53.000000Z
> handler_name : SoundHandler
> vendor_id : [0][0][0][0]
> encoder : Lavc61.4.100 aac
> [Parsed_subtitles_0 @ 0000025597955800] fontselect: (Arial, 400, 0) -> ArialMT, 0, ArialMTdrop=0 speed=0.171x
> [out#0/mp4 @ 00000255978eed00] video:11219KiB audio:102KiB subtitle:0KiB other streams:0KiB global headers:0KiB muxing overhead: 0.081056%
> frame= 189 fps=6.0 q=-1.0 Lsize= 11329KiB time=00:00:06.20 bitrate=14960.4kbits/s dup=1 drop=0 speed=0.196x
> [libx264 @ 0000025597949c00] frame I:5 Avg QP:22.96 size: 94847
> [libx264 @ 0000025597949c00] frame P:52 Avg QP:25.76 size: 67137
> [libx264 @ 0000025597949c00] frame B:132 Avg QP:26.43 size: 56983
> [libx264 @ 0000025597949c00] consecutive B-frames: 6.3% 1.1% 1.6% 91.0%
> [libx264 @ 0000025597949c00] mb I I16..4: 17.9% 66.7% 15.4%
> [libx264 @ 0000025597949c00] mb P I16..4: 10.8% 57.5% 8.8% P16..4: 13.8% 3.5% 1.1% 0.0% 0.0% skip: 4.5%
> [libx264 @ 0000025597949c00] mb B I16..4: 5.7% 31.9% 6.5% B16..8: 26.3% 9.0% 1.6% direct: 3.6% skip:15.5% L0:53.8% L1:40.2% BI: 6.1%
> [libx264 @ 0000025597949c00] 8x8 transform intra:72.9% inter:83.4%
> [libx264 @ 0000025597949c00] coded y,uvDC,uvAC intra: 60.5% 46.3% 8.0% inter: 26.1% 30.2% 0.9%
> [libx264 @ 0000025597949c00] i16 v,h,dc,p: 30% 28% 13% 29%
> [libx264 @ 0000025597949c00] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 18% 19% 6% 8% 8% 8% 8% 9%
> [libx264 @ 0000025597949c00] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 18% 19% 13% 6% 11% 9% 10% 6% 7%
> [libx264 @ 0000025597949c00] i8c dc,h,v,p: 55% 20% 22% 4%
> [libx264 @ 0000025597949c00] Weighted P-Frames: Y:0.0% UV:0.0%
> [libx264 @ 0000025597949c00] ref P L0: 56.6% 7.6% 20.0% 15.8%
> [libx264 @ 0000025597949c00] ref B L0: 86.1% 10.1% 3.9%
> [libx264 @ 0000025597949c00] ref B L1: 94.3% 5.7%
> [libx264 @ 0000025597949c00] kb/s:14586.81
> [aac @ 0000025599caa040] Qavg: 1098.128
> ====================
> ffprobe.exe merged.mp4
> ====================
> ffprobe version N-114515-gfa110c32b5-20240329 Copyright (c) 2007-2024 the FFmpeg developers
> built with gcc 13.2.0 (crosstool-NG 1.26.0.65_ecc5e41)
> configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --enable-libdvdread --enable-libdvdnav --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh
> --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-libs=-lgomp --extra-ldflags=-pthread --extra-ldexeflags= --cc=x86_64-w64-mingw32-gcc --cxx=x86_64-w64-mingw32-g++ --ar=x86_64-w64-mingw32-gcc-ar --ranlib=x86_64-w64-mingw32-gcc-ranlib --nm=x86_64-w64-mingw32-gcc-nm --extra-version=20240329
> libavutil 59. 10.100 / 59. 10.100
> libavcodec 61. 4.100 / 61. 4.100
> libavformat 61. 2.100 / 61. 2.100
> libavdevice 61. 2.100 / 61. 2.100
> libavfilter 10. 2.100 / 10. 2.100
> libswscale 8. 2.100 / 8. 2.100
> libswresample 5. 2.100 / 5. 2.100
> libpostproc 58. 2.100 / 58. 2.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'merged.mp4':
> Metadata:
> major_brand : isom
> minor_version : 512
> compatible_brands: isomiso2avc1mp41
> encoder : Lavf61.2.100
> Duration: 00:00:06.30, start: 0.000000, bitrate: 14731 kb/s
> Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1080x1920 [SAR 1:1 DAR 9:16], 14587 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
> Metadata:
> handler_name : VideoHandler
> vendor_id : [0][0][0][0]
> encoder : Lavc61.4.100 libx264
> Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 134 kb/s (default)
> Metadata:
> handler_name : SoundHandler
> vendor_id : [0][0][0][0]
> ====================
My guess is, that's burned in now, and not a separate track.
I recollect on other videos, you have
Stream n:m Video
Stream p:q Audio
Stream x:y Subtitles
and then a recipient can strip Subtitles with either
their player settings or with an editor.
When you burn subtitles in, the subtitle is in front
of the video content, so some of the video content
would be obscured if you tried to remove the text the
hard way.
I don't think I've ever added subtitles to video content,
but I've seen references to it in passing, on editing
discussions. They can either be permanently burned in,
or made available as a stream that can be removed.
The subtitles can even have languages, there can be
more than one, and the player selects the English
subtitle for you (using localization declaration the
OS has already got). Maybe a Spanish subtitle, if the
Windows was a Spanish version.
Just as a video can have more than one sound track.
One of the sound tracks should be a "lowest common denominator"
and be playable on any equipment. The others could be
Dolby or whatever.
Maybe you should get some recordings off a TV tuner
card and see how those are constructed. There may be
an option on your TV remote, to turn on subtitles.
In this example, nothing has been able to access the "Thumbnail".
Stream #0:0[0x2f](eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:1[0x30](enm): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (visual impaired)
Stream #0:2[0x31](eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
Stream #0:3[0x32]: Video: mpeg2video (Main), yuv420p(tv, bt709, top first),
1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 16999 kb/s, 29.97 fps, 29.97 tbr, 10000k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 16999200/0/0 buffer size: 5652480 vbv_delay: N/A
Stream #0:4[0x33]: Subtitle: eia_608
Stream #0:5[0xffffffff]: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 200x113 [SAR 96:96 DAR 200:113], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
title : TV Thumbnail
A second sample. The second line here must be some kind of joke.
It has one fewer audio tracks. Every program at the TV station,
can be encoded slightly differently if they want.
Stream #0:0[0xc](eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:1[0xd](enm): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (hearing impaired)
Stream #0:2[0xe]: Video: mpeg2video (Main), yuv420p(tv, top first),
1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 10000k tbn, 59.94 tbc
Side data:
cpb: bitrate max/min/avg: 24000000/0/0 buffer size: 7995392 vbv_delay: N/A
Stream #0:3[0xffffffff]: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 200x113 [SAR 96:96 DAR 200:113], 90k tbr, 90k tbn, 90k tbc (attached pic)
Metadata:
title : TV Thumbnail
Stream #0:4[0xf]: Subtitle: eia_608
Whatever that EIA_608 Subtitle is, it is selectable in VLC as Track 1 in
the Subtitle menu. I can switch the subtitle on and off.
Paul
[toc] | [prev] | [next] | [standalone]
| From | "Carlos E.R." <robin_listas@es.invalid> |
|---|---|
| Date | 2024-10-15 22:22 +0200 |
| Message-ID | <cgv2ukxohq.ln2@Telcontar.valinor> |
| In reply to | #179270 |
On 2024-10-15 15:12, Oliver wrote: > What's the best way on Windows to offline embed the text in an SRT > companion file to an MP4 video before uploading a short video clip to a web > site? Please don't do that. If the subtitles go as a separate text stream, the site can automatically or manually add translations to other languages of your video. This is what Youtube does. You can instead join the video and the text into a single file (but separate streams) using formats that allow this, and add the metadata for the language. -- Cheers, Carlos.
[toc] | [prev] | [next] | [standalone]
| From | Oliver <ollie@invalid.net> |
|---|---|
| Date | 2025-02-26 00:52 -0700 |
| Message-ID | <vpmh8p$2fkd6$1@dont-email.me> |
| In reply to | #179270 |
On Tue, 15 Oct 2024 07:12:23 -0600, Oliver <ollie@invalid.net> wrote > What's the best way on Windows to offline embed the text in an SRT > companion file to an MP4 video before uploading a short video clip to a web > site? I want to update this thread given that I've burned in probably a score of video captions since I originally opened this thread, so I want to help get the message out what worked best to do that task with Windows 10 freeware. Editing the srt file works only up to a point because you have to look at the video and edit the file at the same time, where the biggest problem, really, is the annoying propensity of Windows to focus on the wrong window. So you're always switching your mouse focus between your text editor and your video player as you navigate the video with MPC-BE or VLC freeware. It's a bit worse than that with an editor because when you add a caption in between two existing captions, you have to renumber all subsequent indices. Obviously that means you need a freeware subtitle editor, the best almost universally being said to be Aegisub, which is functional, but complicated. https://www.videohelp.com/software/Aegisub The learning curve for Aegisub is so steep that I went back to text editing until, in frustration, I tried the "second best" solution, which worked! This second-best freeware subtitle editor is the Subtitle Edit tool. https://www.videohelp.com/software/Subtitle-Edit Subtitle Edit is much simpler and easier to make srt's than is Aegisub! One pitfall though with Subtitle Edit is it doesn't play well with MPC-BE. Nor did it seem to work well with VLC, even though it's supposed to. Nor did it work at all when I manually installed mpv which it recommended. https://www.videohelp.com/software?d=mpv-x86_64-20181002.7z But when I let Subtitle Edit download mpv on its own, it worked fine. https://sourceforge.net/projects/mpv-player-windows/ Those are lessons learned I wanted to impart into this thread for you. Once you have the subtitles, you still need to burn them into the MP4 file. For that, Paul's suggestion of ffmpeg has been working out fantastically. Lessons learned on burning in the subtitles are just in the frill options. Burn subtitles, 30 point font: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=30'" output_with_subtitles.mp4 Burn subtitles, 34 point font: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34'" output_with_subtitles.mp4 Burn subtitles, 34 point font, color BLACK: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H000000'" output_with_black_subs.mp4 Burn subtitles, 34 point font, color WHITE: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&HFFFFFF'" output_with_white_subs.mp4 Burn subtitles, 34 point font, color RED: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H0000FF'" output_with_red_subs.mp4 Burn subtitles, 34 point font, color GREEN: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H00FF00'" output_with_green_subs.mp4 Burn subtitles, 34 point font, color BLUE: ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&HFF0000'" output_with_blue_subs.mp4 The only other thing that's often needed is to set the thumbnail. What you can do is pick an exact frame you want to be that thumbnail. This will extract a single frame exactly 70 seconds into the video: ffmpeg -i input.mp4 -ss 00:01:10 -frames:v 1 thumbnail.jpg If desired, this will extract a thumbnail every five seconds: ffmpeg -i input.mp4 -vf "fps=1/5" thumb%04d.jpg Once you choose the thumbnail, this will embed it into the metadata: ffmpeg -i input.mp4 -i thumbnail.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.mp4 I hope these lessons learned can help someone else, as I very much appreciate the help Paul and others provided to me.
[toc] | [prev] | [next] | [standalone]
| From | Geoff <geoff@nospamgeoffwood.org> |
|---|---|
| Date | 2025-02-27 09:18 +1300 |
| Message-ID | <vpnsuo$2nbfq$1@dont-email.me> |
| In reply to | #182562 |
On 26/02/2025 8:52 pm, Oliver wrote: > On Tue, 15 Oct 2024 07:12:23 -0600, Oliver <ollie@invalid.net> wrote >> What's the best way on Windows to offline embed the text in an SRT >> companion file to an MP4 video before uploading a short video clip to >> a web >> site? > > I want to update this thread given that I've burned in probably a score > of video captions since I originally opened this thread, so I want to > help get the message out what worked best to do that task with Windows > 10 freeware. > > Editing the srt file works only up to a point because you have to look > at the video and edit the file at the same time, where the biggest > problem, really, is the annoying propensity of Windows to focus on the > wrong window. > > So you're always switching your mouse focus between your text editor and > your video player as you navigate the video with MPC-BE or VLC freeware. > > It's a bit worse than that with an editor because when you add a caption > in between two existing captions, you have to renumber all subsequent > indices. > > Obviously that means you need a freeware subtitle editor, the best > almost universally being said to be Aegisub, which is functional, but > complicated. > https://www.videohelp.com/software/Aegisub > > The learning curve for Aegisub is so steep that I went back to text editing > until, in frustration, I tried the "second best" solution, which worked! > > This second-best freeware subtitle editor is the Subtitle Edit tool. > https://www.videohelp.com/software/Subtitle-Edit > > Subtitle Edit is much simpler and easier to make srt's than is Aegisub! > > One pitfall though with Subtitle Edit is it doesn't play well with MPC-BE. > Nor did it seem to work well with VLC, even though it's supposed to. > Nor did it work at all when I manually installed mpv which it recommended. > https://www.videohelp.com/software?d=mpv-x86_64-20181002.7z > > But when I let Subtitle Edit download mpv on its own, it worked fine. > https://sourceforge.net/projects/mpv-player-windows/ > > Those are lessons learned I wanted to impart into this thread for you. > Once you have the subtitles, you still need to burn them into the MP4 file. > > For that, Paul's suggestion of ffmpeg has been working out fantastically. > Lessons learned on burning in the subtitles are just in the frill options. > > Burn subtitles, 30 point font: > ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=30'" > output_with_subtitles.mp4 > > Burn subtitles, 34 point font: > ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=34'" > output_with_subtitles.mp4 > > Burn subtitles, 34 point font, color BLACK: > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H000000'" > output_with_black_subs.mp4 > > Burn subtitles, 34 point font, color WHITE: > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&HFFFFFF'" > output_with_white_subs.mp4 > > Burn subtitles, 34 point font, color RED: > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H0000FF'" > output_with_red_subs.mp4 > > Burn subtitles, 34 point font, color GREEN: > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&H00FF00'" > output_with_green_subs.mp4 > > Burn subtitles, 34 point font, color BLUE: > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=34,PrimaryColour=&HFF0000'" > output_with_blue_subs.mp4 > > The only other thing that's often needed is to set the thumbnail. > What you can do is pick an exact frame you want to be that thumbnail. > > This will extract a single frame exactly 70 seconds into the video: > ffmpeg -i input.mp4 -ss 00:01:10 -frames:v 1 thumbnail.jpg > > If desired, this will extract a thumbnail every five seconds: > ffmpeg -i input.mp4 -vf "fps=1/5" thumb%04d.jpg > Once you choose the thumbnail, this will embed it into the metadata: > ffmpeg -i input.mp4 -i thumbnail.jpg -map 0 -map 1 -c copy - > disposition:v:1 attached_pic output.mp4 > I hope these lessons learned can help someone else, as I very much > appreciate the help Paul and others provided to me. Alternatively you could spend US$49 and buy something like Magix Movie Studio 2025 and it would take possibly less time to achieve your aim than it did to type your post. geoff -- geoff
[toc] | [prev] | [next] | [standalone]
| From | Oliver <ollie@invalid.net> |
|---|---|
| Date | 2025-02-26 17:28 -0700 |
| Message-ID | <vpobja$2puii$1@dont-email.me> |
| In reply to | #182577 |
On Thu, 27 Feb 2025 09:18:32 +1300, Geoff wrote : > Alternatively you could spend US$49 and buy something like Magix Movie > Studio 2025 and it would take possibly less time to achieve your aim > than it did to type your post. Thanks for that suggestion of generating subtitles and burning them into the video using the Windows payware Magix Movie Studio 2025 tools. <https://www.magix.com/us/video-editor/movie-studio/new-features/> It looks like it comes in Platinum, Suite & Ultimate versions whose license fee appears to be $50, $60 & $110 respectively. The 2025 version incorporates AI tools to streamline the editing process, including AI-generated subtitles & voiceovers & AI-powered effects. Based on the web page, some of the AI effects are blemish smoothing, focus sharpening, fog removal, colorizing, and speech to text and vice versa. While all that stuff is undeniably great to have if I were a content creator, my use model is simply to caption short videos on my phone. For that, Subtitle Edit & ffmpeg freeware appear to work fine, but it's wonderful that there are professional level tools to help the creators.
[toc] | [prev] | [next] | [standalone]
| From | Geoff <geoff@nospamgeoffwood.org> |
|---|---|
| Date | 2025-02-27 15:00 +1300 |
| Message-ID | <vpoh0h$2qkml$1@dont-email.me> |
| In reply to | #182584 |
On 27/02/2025 1:28 pm, Oliver wrote: > On Thu, 27 Feb 2025 09:18:32 +1300, Geoff wrote : > > >> Alternatively you could spend US$49 and buy something like Magix Movie >> Studio 2025 and it would take possibly less time to achieve your aim >> than it did to type your post. > > Thanks for that suggestion of generating subtitles and burning them into > the video using the Windows payware Magix Movie Studio 2025 tools. > <https://www.magix.com/us/video-editor/movie-studio/new-features/> > > It looks like it comes in Platinum, Suite & Ultimate versions whose license > fee appears to be $50, $60 & $110 respectively. > > The 2025 version incorporates AI tools to streamline the editing process, > including AI-generated subtitles & voiceovers & AI-powered effects. > > Based on the web page, some of the AI effects are blemish smoothing, focus > sharpening, fog removal, colorizing, and speech to text and vice versa. > > While all that stuff is undeniably great to have if I were a content > creator, my use model is simply to caption short videos on my phone. > > For that, Subtitle Edit & ffmpeg freeware appear to work fine, but it's > wonderful that there are professional level tools to help the creators. That's really the 'amateur' version, though capable of 'pro' results. Their (Magix, was Sony, was Sonic Foundry) professional equiv is Vegas Pro. Any functions are optional, and subtitles is just a very basis one. I guess it comes down to factor such as $$$ spent, ease of implementing subtitles (and tweaking of them), how you value your time, etc. -- geoff
[toc] | [prev] | [next] | [standalone]
| From | Oliver <ollie@invalid.net> |
|---|---|
| Date | 2025-02-27 11:47 -0700 |
| Message-ID | <vpqbvt$37sfv$1@dont-email.me> |
| In reply to | #182586 |
On Thu, 27 Feb 2025 15:00:49 +1300, Geoff <geoff@nospamgeoffwood.org> wrote >> For that, Subtitle Edit & ffmpeg freeware appear to work fine, but it's >> wonderful that there are professional level tools to help the creators. > > That's really the 'amateur' version, though capable of 'pro' results. > Their (Magix, was Sony, was Sonic Foundry) professional equiv is Vegas > Pro. Any functions are optional, and subtitles is just a very basis one. > > I guess it comes down to factor such as $$$ spent, ease of implementing > subtitles (and tweaking of them), how you value your time, etc. I appreciate that you brought up the professional tools as compared to teh freeware tools, where there is often a 1:1 freeware copy to the pro tools. An example is PhotoShop versus Paint.NET/Pinta on the Windows platform. The freeware tools do almost everything the pro tools do, as that's what their main raison d'etre is after all. To copy what the pro tools do. In that case, you get most of the pro editing functionality, for free. And, as a bonus, the freeware tools are easier to use than the pro tools. So I agree with you that it depends a lot on how you value your time. Speaking of how much time it takes to do something... I agree with you that the professional GUIs often can sometimes do far more than the freeware GUIs do, but even so, I think we perhaps might be hard pressed to find a professional GUI that does much of anything faster than some of the free command-line programs suggested in this thread can do. For example, a 'deshake' operation with ffmpeg freeware is pretty fast. ffmpeg -i input.mp4 -vf deshake output_deshake.mp4 So is a 'rotate by 180 degrees' pretty fast on the freeware command line. ffmpeg -i input.mp4 -vf "transpose=1,transpose=1" output.mp4 So is embedding yellow 32-point fonts pretty fast as a freeware command. ffmpeg -i input.mp4 -vf "subtitles=input.srt:force_style='FontSize=32,PrimaryColour=&H00FFFF'" output.mp4 Extracting thumbnails is also very easy on the freeware command line. ffmpeg -i input.mp4 -vf "fps=1/5" thumb%04d.jpg So is embedding any chosen thumbnail easily to do as a freeware command: ffmpeg -i input.mp4 -i thumbnail.jpg -map 0 -map 1 -c copy -disposition:v:1 attached_pic output.mp4 Removing metadata (including thumbnails) is also easy on the command line. ffmpeg -i input.mp4 -map 0 -map_metadata -1 -c copy output.mp4 Cropping/blurring areas using the cmd line is much more work though. Crop out a section 20 pixels from the top and 20 pixels from the bottom. ffmpeg -i input.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy output.mp4 Blur out a section 20 pixels from the top and 20 pixels from the bottom. ffmpeg -i input.mp4 -vf "split[original][blurred];[blurred]crop=iw:20:0:0,boxblur=luma_r=10 Crop to an 80-by-60 pixel area, starting from position (200,100). ffmpeg -i input.mp4 -filter:v "crop=80:60:200:100" -c:a copy output.mp4 Blur an 80-by-60 pixel area, starting from position (200,100). ffmpeg -i input.mp4 -filter:v "crop=iw:ih:0:0,split[original][blurred];[blurred]crop=80:60:200:100,boxblur=luma_r=10:chroma_r=5[blurred_cropped];[original][blurred_cropped]overlay=200:100[out]" -map "[out]" -map 0:a? -c:a copy output.mp4 As is speeding up (or slowing down) a section a little more work though. AFAIK, you have to first chop the input video up into separate sections. ffmpeg -ss 00:01:00 -i video1.mp4 -to 00:02:00 video1-cut1.mp4 And then you can speed up that section (handling audio how you want). ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4 And then you can reassemble the separate sections back together. dir /b *.mp4 > list.txt ffmpeg -f concat -i list.txt -c copy output.mp4 So far, I've had to do all those things repeatedly with my short videos taken from my phone. I find ffmpeg does it fast once you know the command. But I think the two or three things your suggested professional GUI would probably do faster & easier might be these three tasks I have had to do. 1. subtitles of what I want to point out in the video 2. cropping (or blurring) hand drawn areas of the video 3. speeding up/slowing down entire sections of the video While I found that I had to use the SubtitleEdit freeware GUI to make adding subtitles into a push-button simplicity, the other two are harder. Is it very easy to do those other things using your suggested pro program?
[toc] | [prev] | [next] | [standalone]
| From | Geoff <geoff@nospamgeoffwood.org> |
|---|---|
| Date | 2025-02-28 11:36 +1300 |
| Message-ID | <vpqpdb$3a4nb$1@dont-email.me> |
| In reply to | #182608 |
On 28/02/2025 7:47 am, Oliver wrote: > On Thu, 27 Feb 2025 15:00:49 +1300, Geoff <geoff@nospamgeoffwood.org> wrote >>> For that, Subtitle Edit & ffmpeg freeware appear to work fine, but it's >>> wonderful that there are professional level tools to help the creators. >> >> That's really the 'amateur' version, though capable of 'pro' results. >> Their (Magix, was Sony, was Sonic Foundry) professional equiv is Vegas >> Pro. Any functions are optional, and subtitles is just a very basis one. >> >> I guess it comes down to factor such as $$$ spent, ease of >> implementing subtitles (and tweaking of them), how you value your >> time, etc. > > I appreciate that you brought up the professional tools as compared to teh > freeware tools, where there is often a 1:1 freeware copy to the pro tools. > > An example is PhotoShop versus Paint.NET/Pinta on the Windows platform. > The freeware tools do almost everything the pro tools do, as that's what > their main raison d'etre is after all. To copy what the pro tools do. > > In that case, you get most of the pro editing functionality, for free. > And, as a bonus, the freeware tools are easier to use than the pro tools. > > So I agree with you that it depends a lot on how you value your time. > Speaking of how much time it takes to do something... > I agree with you that the professional GUIs often can sometimes do far more > than the freeware GUIs do, but even so, I think we perhaps might be hard > pressed to find a professional GUI that does much of anything faster than > some of the free command-line programs suggested in this thread can do. > > For example, a 'deshake' operation with ffmpeg freeware is pretty fast. > ffmpeg -i input.mp4 -vf deshake output_deshake.mp4 > > So is a 'rotate by 180 degrees' pretty fast on the freeware command line. > ffmpeg -i input.mp4 -vf "transpose=1,transpose=1" output.mp4 > > So is embedding yellow 32-point fonts pretty fast as a freeware command. > ffmpeg -i input.mp4 -vf > "subtitles=input.srt:force_style='FontSize=32,PrimaryColour=&H00FFFF'" > output.mp4 > > Extracting thumbnails is also very easy on the freeware command line. > ffmpeg -i input.mp4 -vf "fps=1/5" thumb%04d.jpg > So is embedding any chosen thumbnail easily to do as a freeware command: > ffmpeg -i input.mp4 -i thumbnail.jpg -map 0 -map 1 -c copy - > disposition:v:1 attached_pic output.mp4 > > Removing metadata (including thumbnails) is also easy on the command line. > ffmpeg -i input.mp4 -map 0 -map_metadata -1 -c copy output.mp4 > > Cropping/blurring areas using the cmd line is much more work though. > > Crop out a section 20 pixels from the top and 20 pixels from the bottom. > ffmpeg -i input.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy output.mp4 > Blur out a section 20 pixels from the top and 20 pixels from the bottom. > ffmpeg -i input.mp4 -vf "split[original][blurred]; > [blurred]crop=iw:20:0:0,boxblur=luma_r=10 > > Crop to an 80-by-60 pixel area, starting from position (200,100). > ffmpeg -i input.mp4 -filter:v "crop=80:60:200:100" -c:a copy output.mp4 > Blur an 80-by-60 pixel area, starting from position (200,100). > ffmpeg -i input.mp4 -filter:v "crop=iw:ih:0:0,split[original][blurred]; > [blurred]crop=80:60:200:100,boxblur=luma_r=10:chroma_r=5[blurred_cropped];[original][blurred_cropped]overlay=200:100[out]" -map "[out]" -map 0:a? -c:a copy output.mp4 > > As is speeding up (or slowing down) a section a little more work though. > AFAIK, you have to first chop the input video up into separate sections. > ffmpeg -ss 00:01:00 -i video1.mp4 -to 00:02:00 video1-cut1.mp4 > > And then you can speed up that section (handling audio how you want). > ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" output.mp4 > > And then you can reassemble the separate sections back together. > dir /b *.mp4 > list.txt ffmpeg -f concat -i list.txt -c copy output.mp4 > > So far, I've had to do all those things repeatedly with my short videos > taken from my phone. I find ffmpeg does it fast once you know the command. > > But I think the two or three things your suggested professional GUI would > probably do faster & easier might be these three tasks I have had to do. > > 1. subtitles of what I want to point out in the video > 2. cropping (or blurring) hand drawn areas of the video > 3. speeding up/slowing down entire sections of the video > > > While I found that I had to use the SubtitleEdit freeware GUI to make > adding subtitles into a push-button simplicity, the other two are harder. > > Is it very easy to do those other things using your suggested pro program? Yes. And not even the 'pro' level app. But you seem to equate 'paid for' as 'professional' - which is not the case. Your 'free' does seem to involve a hell of a lot of unintuitive frigging around to achieve basic results. But whatever gets you through the night.... -- geoff
[toc] | [prev] | [next] | [standalone]
Page 1 of 2 [1] 2 Next page →
Back to top | Article view | alt.comp.os.windows-10
csiph-web