[Libav-user] re-encoding and transcode (codec copy) on same file.

bowljoman bowljoman at gmail.com
Thu Apr 13 08:26:24 EEST 2017


apologies again for top posting. first take the original critcal packets, either sudio or video, decode them to determine the ecoder settings you need to mimic. it would be specifying profile level and size for vid, and sample rate with channle layout for audio. apply them to the opening encoder contexts. of couse then, the processing frames are the right size and rates. if you need to change color space or down sample to mono for echo cancellation, you need to return to the original formats and then encode. your concern about changed sps and pps is specific to the continer.  you appear to be targeting mp4, in which case closing the file after processing some segment should work for you. watch your timestamps so that they do not lose context when psssing through the processsing


Sent from my T-Mobile 4G LTE Device
-------- Original message --------From: YIRAN LI <mrfun.china at gmail.com> Date: 4/12/17  6:06 PM  (GMT-08:00) To: "This list is about using libavcodec, libavformat, libavutil, libavdevice and libavfilter." <libav-user at ffmpeg.org> Subject: Re: [Libav-user] re-encoding and transcode (codec copy) on same	file. 


2017-04-12 0:55 GMT+10:00 Andy Shaules <bowljoman at gmail.com>:

  
    
  
  
    On 4/10/2017 4:37 PM, YIRAN LI wrote:

    
    
      
        

        
        

          2017-04-10 7:16 GMT+10:00 bowljoman <bowljoman at gmail.com>:

            
              
                

                
                sorry if this client top posts, but to answer, you
                  can do 1 of 2 things. assume it is different and
                  insert it before returning to the unprocessed clip. or
                  you can check if they are different by doing a
                  comparison.
                

                
                

                
              
            
            ​Thanks
              for your suggestion. Let's say if original H.264 video
              stream has AVCC bitstream, no matter you encode 1st part
              with Annex-b or AVCC, as long as it's different from
              orginal format, I won't be able to do codec copy using
              readpacket/writepacket, right?
            

            
            Thanks
            ​
            
              
                
                  Sent
                    from my T-Mobile 4G LTE Device
                
                
                  

                  
                  
                    -------- Original message --------
                    From: YIRAN LI <mrfun.china at gmail.com> 
                    Date: 4/7/17 3:15 PM (GMT-08:00) 
                    To: "This list is about using libavcodec,
                      libavformat, libavutil, libavdevice and
                      libavfilter." <libav-user at ffmpeg.org>,
                      FFmpeg user questions <ffmpeg-user at ffmpeg.org> 
                    Subject: [Libav-user] re-encoding and transcode
                      (codec copy) on same file. 
                    

                    
                  
                  
                    Hi guys,
                    

                    
                    I'm
                      investigating if it's possible to do editing and
                      transcode on same file.
                    

                    
                    I mean use
                      -vcodec copy, we can readout packets and write
                      them directly into output file without
                      re-encoding. But if it's possible, for example if
                      I have a 2 mins video, re-encode 1st min because
                      there're some effects applied to that region but
                      copy 2nd part?
                    

                    
                    My concern
                      is, for example we know H.264 has extradata, if I
                      re-encode first part but keep 2nd part, how if new
                      extradata is different from old extradta?
                    

                    
                    Anyone have
                      suggestion on this? and any other possible
                      problems doing this?
                    

                    
                    Thanks
                  
                
              

              _______________________________________________

              Libav-user mailing list

              Libav-user at ffmpeg.org

              http://ffmpeg.org/mailman/listinfo/libav-user

              

            
          
          

        
      
      

      
      

      _______________________________________________
Libav-user mailing list
Libav-user at ffmpeg.org
http://ffmpeg.org/mailman/listinfo/libav-user

    
    It doesnt matter what the inputs are. just convert them to one or
      the other type. the final stream can be assembled with all avc or
      avcc packets. choose one or the other.

​Thanks for reply.
I did some research yesterday and I think no matter packets in the file is in starting code (annex-b) or size​ (avcc) mode, I can always detect and convert it to another mode.
The problem is, if I re-encode a part and keep another part, how can I guarantee the SPS/PPS values for 2 parts are same? If they are different, even if they are in packets (in-band) instead of in global header, is such a file standard compliant ?
Thanks
    
  


_______________________________________________

Libav-user mailing list

Libav-user at ffmpeg.org

http://ffmpeg.org/mailman/listinfo/libav-user




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20170412/b68a4ea0/attachment.html>


More information about the Libav-user mailing list