Hello,
I am involved in a project that is creating a video viewer/editor that reads
information from a Transport stream. The input file transport stream contains
video, audio and KLV formatted data streams. My application allows the user to
select a start and end point within the source file and save all stream
information between these points to a new transport stream file. There is a
'nice to have' requirement that asks for the output files to be generated in
MXF format.
My code works by performing an av_seek to the appropriate point in the library.
It then reads each packet in turn from the input file and writes it to the
output file. This has proven successful when the output file has an extension
of ".ts". When the output file extension is ".mxf", the writing of the header
fails to output the data streams.
My question is "Are data streams supported when outputting a transport stream
(.ts) to a .mxf file?"
As an additional test, I have tried to use the command line avconv to perform a
conversion. Typing the command "avconv -i infile.ts outfile.mxf" resulted in
the following output.
anthony.venables@localhost:/mercury/VIDEO_FILES> /usr/share/libav/avconv -i
infile.ts outfile.mxf
avconv version 11.4, Copyright (c) 2000-2014 the Libav developers
built on Jul 17 2015 08:43:40 with gcc 4.3 (SUSE Linux)
[h264 @ 0x8f53900] SEI type 1 truncated at 65
Last message repeated 5 times
[mpegts @ 0x8f4e020] Continuity check failed for pid 192 expected 0 got 15
Guessed Channel Layout for Input Stream #0.3 : stereo
Input #0, mpegts, from 'infile.ts':
Duration: 00:00:33.44, start: 34250.181256, bitrate: 15924 kb/s
Program 1
Metadata:
service_name : Service01
service_provider: Libav
No Program
Stream #0.0[0xbd]: Data: [0][0][0][0] / 0x0000
Stream #0.1[0xfc]: Data: [0][0][0][0] / 0x0000
Stream #0.2[0xe0]: Video: h264 (Main), yuv420p, 1280x720, 50 fps, 90k tbn,
100 tbc
Stream #0.3[0xc0]: Audio: mp2, 44100 Hz, 2 channels, s16p, 128 kb/s
[mpeg2video @ 0x8f54860] MPEG1/2 does not support 90000/1 fps
Output #0, mxf, to 'outfile.mxf':
Stream #0.0: Video: mpeg2video, q=2-31, 200 kb/s
Metadata:
encoder : Lavc56.1.0 mpeg2video
Stream #0.1: Audio: pcm_s16le, 0 channels
Metadata:
encoder : Lavc56.1.0 pcm_s16le
Stream mapping:
Stream #0:2 -> #0:0 (h264 (native) -> mpeg2video (native))
Stream #0:3 -> #0:1 (mp2 (native) -> pcm_s16le (native))
Error while opening encoder for output stream #0:0 - maybe incorrect parameters
such as bit_rate, rate, width or height
anthony.venables@localhost:/mercury/VIDEO_FILES>
As you can see, the output file only has two streams, a video and an audio
stream. I understand that the command line call is missing some information to
allow conversion of the video and audio correctly, but this is a secondary
issue at this point.
Anthony Venables
Senior Software Engineer
Information Fusion
Airbus Group Innovations UK
Quadrant Campus, Celtic Springs, NP10 8FZ, Newport, UK
Office: +441179361588
E-mail:
[email protected]<mailto:[email protected]>
<html><head></head><body><font color="black" face="arial" size="2">
The information in this e-mail is confidential. The contents may not be
disclosed or used by anyone other than the addressee. Access to this e-mail by
anyone else is unauthorised.
If you are not the intended recipient, please notify Airbus immediately and
delete this e-mail.
Airbus cannot accept any responsibility for the accuracy or completeness of
this e-mail as it has been sent over public networks. If you have any concerns
over the content of this message or its Accuracy or Integrity, please contact
Airbus immediately.
All outgoing e-mails from Airbus are checked using regularly updated virus
scanning software but you should take whatever measures you deem to be
appropriate to ensure that this message and any attachments are virus free.
</font>
</body>
</html>
_______________________________________________
libav-api mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-api