我如何使用比特流过滤器

时间:2013-05-29 07:12:12

标签: c libavcodec libavformat

我正在尝试对RTSP流进行解复用,并使用libavformat,libavcodec等将其重新转换为TS文件,复制视频并转码音频。如果我使用ffmpeg,命令大致如下:

ffmpeg -rtsp_transport tcp -re -fflags +genpts -i rtsp://10.0.0.42/channel1 -vcodec copy -copyts -bsf dump_extra -acodec libfdk_aac -b:a 16k -ac 1 -map 0:0 -map 0:1 -f mpegts out.ts

我查看了多路复用/多路分解示例,但除了难以理解如何制作流副本之外,我找不到任何比特流过滤器。我目前收到以下错误:

[mpegts @ 0x7ff20c009600] H.264 bitstream malformed, no startcode found, use the h264_mp4toannexb bitstream filter (-bsf h264_mp4toannexb)

如何创建比特流过滤器以及如何分配?我是将它分配给输入流还是输出流?

2 个答案:

答案 0 :(得分:4)

比特流过滤器遗憾地被遗忘了,但不应该很难弄明白。最简单的方法可能只是模仿avconv做的事情 - setup,然后apply在复用它之前对每个数据包进行过滤。

答案 1 :(得分:0)

您可以在此处找到MPEG-2 TS简短说明http://wiki.multimedia.cx/index.php?title=MPEG-2_Transport_Stream 示例TS文件(对于h.264):http://samples.mplayerhq.hu/V-codecs/h264/

但你的问题不明确。你想做什么?你想为TS创建自己的muxer吗?

BR, 亚历山大