[FFmpeg-user] How do I include ATSC closed captions in a file conversion?

voip at gmx.ca voip at gmx.ca
Tue Dec 9 22:49:26 CET 2014


On Tuesday, December 09, 2014 at 4:08 PM, Anshul <anshul.ffmpeg at gmail.com> wrote:

> If you have closed caption in different stream, u should use -scodec copy.

Since this is a satellite broadcast and not traditional over-the-air, that got me to thinking a bit more about this.  I found out that if I added EITHER -c:s copy (s indicates subtitles) OR -c:d copy (d indicates data), then it worked and when I ran mediainfo on the converted file, I now saw this:

Text #1
ID                                       : 257 (0x101)-CC1
Menu ID                                  : 1 (0x1)
Format                                   : EIA-608
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 4mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Text #2
ID                                       : 257 (0x101)-CC3
Menu ID                                  : 1 (0x1)
Format                                   : EIA-608
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 4mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Text #3
ID                                       : 257 (0x101)-1
Menu ID                                  : 1 (0x1)
Format                                   : EIA-708
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 4mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Text #4
ID                                       : 257 (0x101)-3
Menu ID                                  : 1 (0x1)
Format                                   : EIA-708
Muxing mode                              : SCTE 128 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 4mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Didn't matter whether I used -c:s copy or -c:d copy, as long as I added one or the other the closed captions were there and I could see them in VLC by selecting s "Subtitles Track" from the Video menu.  To me using -c:s makes more intuitive sense, but either way it works.  So, thank you for jogging my thought process on this.

By the way, I am not saying this will work for over-the-air broadcasts, or even for all satellite feeds, but it works with this one.  Nor am I saying this will work when played back using something other than VLC (for example I doubt it would work with XBMC, because they currently don't seem to support subtitles that are not in a separate text file).

My final conversion command is this:

ffmpeg -loglevel quiet -i "original.ts" -c:v copy -filter_complex '[0:1][0:2][0:3]amerge=inputs=3,pan=5.1|FL=c0|FR=c1|FC=c2|LFE=c3|BL=c4|BR=c5' -c:a ac3 -c:s copy "converted.ts"


More information about the ffmpeg-user mailing list