免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3701 | 回复: 2
打印 上一主题 下一主题

[求助]用ffmpeg读取本地ts文件模拟加密 程序出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-20 17:00 |只看该作者 |倒序浏览
下面的代码借鉴了论坛里朋友写的程序,如下所示:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>


#include "ffmpeg/avformat.h"
#include "ffmpeg/swscale.h"

int KEY=0xDF;


int main(int argc, char **argv)
{
char *filename;
AVFormatContext *ic;
AVPacket *pkt;

av_register_all();
     if (argc != 2) {
        printf("usage: %s output_file\n"
               "API example program to output a media file with libavformat.\n"
               "The output format is automatically guessed according to the file extension.\n"
               "Raw images can also be output by using '%%d' in the filename\n"
               "\n", argv[0]);
        exit(1);
    }

filename = argv[1];

   ic=av_alloc_format_context();

if(av_open_input_file(&ic,filename,NULL,0,NULL)!=0)
{  printf("cannot open the file %s\n",filename);
   exit(1);
}

   if (av_find_stream_info(ic)<0)
{  
   printf("can't find suitable codec parameters\n");
   exit(1);
}

   dump_format(ic,0,filename,0);
   
   int i;

   int videoindex=-1;

   for(i=0;i<ic->nb_streams;i++)
{  if (ic->streams->codec->codec_type==CODEC_TYPE_VIDEO)
     {
       videoindex=i;
       break;
     }
   }

   if (videoindex==-1)
{  printf("cna't find video stream\n");
   exit(1);
}

   AVCodecContext *vCodecCtx;

   vCodecCtx=ic->streams[videoindex]->codec;

   AVCodec *vCodec;

   vCodec=avcodec_find_decoder(vCodecCtx->codec_id);

   if(vCodec==NULL)
{
   printf("can't find suitable video decoder\n");
   exit(1);
}

    if(avcodec_open(vCodecCtx,vCodec)<0)
{
    printf("can't open the video decoder\n");
    exit(1);
}

   int flag_endfile=1;
   while(flag_endfile)
{
    if (av_read_frame(ic,pkt)<0)
{flag_endfile=0;}
    else {
    int i=0;
    for(i=0;i<4;i++)
    pkt->data=pkt->data^KEY;
    }
}

    printf("Success!\n");
}

[

论坛徽章:
0
2 [报告]
发表于 2007-11-20 17:37 |只看该作者

接楼上 运行后错误如下:

root@sijie:/usr/local/xm2/ffmpeg# ./sktest /usr/local/xm2/ffmpeg/1.ts
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
                                     。
                                     。
                                     。
                                     。
                                     。
                                     。

[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]non existing PPS referenced
[h264 @ 0xb7ed5af0]decode_slice_header error
[h264 @ 0xb7ed5af0]no frame!
Input #0, mpegts, from '/usr/local/xm2/ffmpeg/1.ts':
  Duration: 00:08:44.5, start: 37.456000, bitrate: 413 kb/s
  Program 1
    Stream #0.0[0x21]: Video: h264, yuv420p, 352x288 [PAR 12:11 DAR 4:3], 12.50 fps(r)
    Stream #0.1[0x22]: Audio: mpeg4aac, 16000 Hz, stereo, 34 kb/s
段错误 (core dumped)

论坛徽章:
0
3 [报告]
发表于 2007-11-20 17:38 |只看该作者

求救

小弟是菜鸟,请路过的高手大哥指教

哪位老大能回帖指出小弟的错误,偶感激不尽

菜鸟错误---让路过的朋友们见笑了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP