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

voip at gmx.ca voip at gmx.ca
Tue Dec 9 21:13:08 CET 2014


I receive satellite TV signals and one channel sends its audio as three separate streams of two channels each, therefore the result is a .ts file where in most software I can select two channels but never get the full 5.1 channel sound.  I was directed to a web page that shows how to map these to a single ac3 stream, using a ffmpeg command of this format:
 
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 "converted.ts"
 
Note that the output file does need to stay in .ts format, for reasons that are not important to this question.
 
This works quite well except that in the original file, there is ATSC closed caption information.  If I run mediainfo on the source file it shows these text streams:

Text #1
ID                                       : 49 (0x31)-CC1
Menu ID                                  : 1 (0x1)
Format                                   : EIA-608
Muxing mode                              : A/53 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 2mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

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

Text #3
ID                                       : 49 (0x31)-1
Menu ID                                  : 1 (0x1)
Format                                   : EIA-708
Muxing mode                              : A/53 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 2mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

Text #4
ID                                       : 49 (0x31)-2
Menu ID                                  : 1 (0x1)
Format                                   : EIA-708
Muxing mode                              : A/53 / DTVCC Transport
Muxing mode, more info                   : Muxed in Video #1
Duration                                 : 1h 2mn
Bit rate mode                            : Constant
Stream size                              : 0.00 Byte (0%)

If I run mediainfo on the output file, none of these appear.  What confuses me is that they all show "Muxing mode, more info : Muxed in Video #1" and as far as I can tell the above ffmpeg command only copies the video stream without changing it, so I don't understand why they aren't present in the output file.

Is there any way I can make sure the closed captions remain in the output file?  They are very helpful to me on occasion, and would probably be much more so for anyone with significant hearing loss.


More information about the ffmpeg-user mailing list