mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 20:42:49 +08:00 
			
		
		
		
	 b008ac18bb
			
		
	
	b008ac18bb
	
	
	
		
			
			* qatar/master: docs: use -bsf:[vas] instead of -[vas]bsf. mpegaudiodec: Prevent premature clipping of mp3 input buffer. lavf: move the packet keyframe setting code. oggenc: free comment header for all codecs lcl: error out if uncompressed input buffer is smaller than framesize. mjpeg: abort decoding if packet is too large. golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF. get_bits: add HAVE_BITS_REMAINING macro. lavf/output-example: use new audio encoding API correctly. lavf/output-example: more proper usage of the new API. tiff: Prevent overreads in the type_sizes array. tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned. apetag: do not leak memory if avio_read() fails apetag: propagate errors. SBR DSP x86: implement SSE sbr_hf_g_filt SBR DSP x86: implement SSE sbr_sum_square_sse SBR DSP: use intptr_t for the ixh parameter. Conflicts: doc/bitstream_filters.texi doc/examples/muxing.c doc/ffmpeg.texi libavcodec/golomb.h libavcodec/x86/Makefile libavformat/oggenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @chapter Bitstream Filters
 | |
| @c man begin BITSTREAM FILTERS
 | |
| 
 | |
| When you configure your FFmpeg build, all the supported bitstream
 | |
| filters are enabled by default. You can list all available ones using
 | |
| the configure option @code{--list-bsfs}.
 | |
| 
 | |
| You can disable all the bitstream filters using the configure option
 | |
| @code{--disable-bsfs}, and selectively enable any bitstream filter using
 | |
| the option @code{--enable-bsf=BSF}, or you can disable a particular
 | |
| bitstream filter using the option @code{--disable-bsf=BSF}.
 | |
| 
 | |
| The option @code{-bsfs} of the ff* tools will display the list of
 | |
| all the supported bitstream filters included in your build.
 | |
| 
 | |
| Below is a description of the currently available bitstream filters.
 | |
| 
 | |
| @section aac_adtstoasc
 | |
| 
 | |
| @section chomp
 | |
| 
 | |
| @section dump_extradata
 | |
| 
 | |
| @section h264_mp4toannexb
 | |
| 
 | |
| Convert an H.264 bitstream from length prefixed mode to start code
 | |
| prefixed mode (as defined in the Annex B of the ITU-T H.264
 | |
| specification).
 | |
| 
 | |
| This is required by some streaming formats, typically the MPEG-2
 | |
| transport stream format ("mpegts").
 | |
| 
 | |
| For example to remux an MP4 file containing an H.264 stream to mpegts
 | |
| format with @command{ffmpeg}, you can use the command:
 | |
| 
 | |
| @example
 | |
| ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
 | |
| @end example
 | |
| 
 | |
| @section imx_dump_header
 | |
| 
 | |
| @section mjpeg2jpeg
 | |
| 
 | |
| Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
 | |
| 
 | |
| MJPEG is a video codec wherein each video frame is essentially a
 | |
| JPEG image. The individual frames can be extracted without loss,
 | |
| e.g. by
 | |
| 
 | |
| @example
 | |
| ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
 | |
| @end example
 | |
| 
 | |
| Unfortunately, these chunks are incomplete JPEG images, because
 | |
| they lack the DHT segment required for decoding. Quoting from
 | |
| @url{http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml}:
 | |
| 
 | |
| Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
 | |
| commented that "MJPEG, or at least the MJPEG in AVIs having the
 | |
| MJPG fourcc, is restricted JPEG with a fixed -- and *omitted* --
 | |
| Huffman table. The JPEG must be YCbCr colorspace, it must be 4:2:2,
 | |
| and it must use basic Huffman encoding, not arithmetic or
 | |
| progressive. . . . You can indeed extract the MJPEG frames and
 | |
| decode them with a regular JPEG decoder, but you have to prepend
 | |
| the DHT segment to them, or else the decoder won't have any idea
 | |
| how to decompress the data. The exact table necessary is given in
 | |
| the OpenDML spec."
 | |
| 
 | |
| This bitstream filter patches the header of frames extracted from an MJPEG
 | |
| stream (carrying the AVI1 header ID and lacking a DHT segment) to
 | |
| produce fully qualified JPEG images.
 | |
| 
 | |
| @example
 | |
| ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
 | |
| exiftran -i -9 frame*.jpg
 | |
| ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
 | |
| @end example
 | |
| 
 | |
| @section mjpega_dump_header
 | |
| 
 | |
| @section movsub
 | |
| 
 | |
| @section mp3_header_compress
 | |
| 
 | |
| @section mp3_header_decompress
 | |
| 
 | |
| @section noise
 | |
| 
 | |
| @section remove_extradata
 | |
| 
 | |
| @c man end BITSTREAM FILTERS
 |