This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于Appro_avi_save.c的处理流程!!



大家好,最近在研究IPNC是否可以在原来avi格式的基础上增加mp4的封装,但是有些疑问,在这里提出来。

1,我知道Appro_avi_save.c应该是基于ffmpeg的muxing.c来修改的,但是Muxing.c应该先进行编码然后封装成avi格式,我就感到特别困惑的是,默认的话,Appro_avi_save使用的视频编码器是x264,是软编码..这不符合常理吧?8148,368不都有专用芯片进行视频编码么,没必要在编码了吧??

2,就是音频,同样是上面的问题,既然前面已经有g711编码,到Appro_avi_save时应该没有再编码了吧,难道Appro_avi_save会判断音视频流是否已经编码了来决定是否编码吗??

3,我重新编译了ffmpeg增加了mp4的muxer,然后传入Appro_avi_save.c中的后缀变成mp4,可以录制视频,但是mp4不支持g711的音频,所以后面我们从其它包中加了aac的编码,进行录制之后,使用暴风,射手播放器,wmp没有任何声音,使用vlc打开直接闪退,设置vlc,使能其硬件加速,结果有视频有声音...这是什么情况?我们的音频是16khz的采样,24kb/s的比特率,单通道的aac...视频就是h264编码的,1080p30的视频。

Save /tmp/20140916163000.mp4 to /mnt/mmc/ipnc...
./Appro_avi_save /mnt/mmc/ipnc/20140916163000.mp4 999999999 15 30 2 1 3 48000 /mnt/mmc/ipnc

 FileName = /mnt/mmc/ipnc/20140916163000.mp4 interval = 999999999 sec  Msg_id = 15
  Is_audio = 2 Is_chkcard = 1 stream_id = 3 nBitRate = 48000 file_path = /mnt/mmc/ipnc
Space on /mnt/mmc/ipnc = 1922940 Kbyte
ApproDrvInit: 15
queue id:131076
samplerate = 16000
Output #0, mp4, to '/mnt/mmc/ipnc/20140916163000.mp4':
    Stream #0.0: Video: libx264, yuv420p, 1920x1080, q=10-51, 4000 kb/s, 90k tbn, 30 tbc
    Stream #0.1: Audio: libfaac, 16000 Hz, 1 channels, s16, 24 kb/s
[libx264 @ 0x29f1e0]using cpu capabilities: none!
[libx264 @ 0x29f1e0]profile Baseline, level 4.0