이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 ffmpeg-bitstream-filters 명령입니다.
프로그램:
이름
ffmpeg-bitstream-filters - FFmpeg 비트스트림 필터
기술
이 문서는 libavcodec 라이브러리에서 제공하는 비트스트림 필터에 대해 설명합니다.
비트스트림 필터는 인코딩된 스트림 데이터에 대해 작동하고 비트스트림 수준을 수행합니다.
디코딩을 수행하지 않고 수정합니다.
비트스트림 필터
FFmpeg 빌드를 구성할 때 지원되는 모든 비트스트림 필터는 다음에 의해 활성화됩니다.
기본. 구성 옵션 "--list-bsfs"를 사용하여 사용 가능한 모든 항목을 나열할 수 있습니다.
구성 옵션 "--disable-bsfs"를 사용하여 모든 비트스트림 필터를 비활성화할 수 있습니다.
"--enable-bsf=BSF" 옵션을 사용하여 비트스트림 필터를 선택적으로 활성화하거나 다음을 수행할 수 있습니다.
"--disable-bsf=BSF" 옵션을 사용하여 특정 비트스트림 필터를 비활성화합니다.
ff* 도구의 "-bsfs" 옵션은 지원되는 모든 비트스트림 목록을 표시합니다.
빌드에 포함된 필터.
ff* 도구에는 스트림당 -bsf 옵션이 적용되어 쉼표로 구분된 목록을 사용합니다.
매개변수가 '=' 뒤의 필터 이름 뒤에 오는 필터.
ffmpeg -i 입력 -c:v 복사 -bsf:v filter1[=opt1=str1/opt2=str2][,filter2] 출력
다음은 현재 사용 가능한 비트스트림 필터에 대한 설명입니다.
매개변수(있는 경우).
aac_adtstoasc
MPEG-2/4 AAC ADTS를 MPEG-4 오디오 특정 구성 비트스트림 필터로 변환합니다.
이 필터는 MPEG-4/2 ADTS 헤더에서 MPEG-4 AudioSpecificConfig를 생성하고 제거합니다.
ADTS 헤더.
이는 예를 들어 원시 ADTS AAC 컨테이너에서 AAC 스트림을
FLV 또는 MOV/MP4 파일.
씹다
패킷 끝에서 제로 패딩을 제거합니다.
덤프_추가
필터링된 패킷의 시작 부분에 추가 데이터를 추가합니다.
추가 인수는 필터링해야 하는 패킷을 지정합니다. 그것은 받아들인다
값 :
a 모든 키 패킷에 추가 데이터를 추가하되 다음 경우에만 local_header 에 설정되어 있습니다. 플래그2 코덱
컨텍스트 필드
k 모든 키 패킷에 추가 데이터 추가
e 모든 패킷에 추가 데이터 추가
지정하지 않으면 다음으로 간주됩니다. k.
예를 들어 다음 ffmpeg 명령은 전역 헤더를 강제 실행합니다(따라서 개별
패킷 헤더) "libx264" 인코더에 의해 생성된 H.264 패킷에 있지만 이를 수정합니다.
extradata에 저장된 헤더를 키 패킷에 추가하여:
ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
h264_mp4toannexb
길이 접두사 모드에서 시작 코드 접두사 모드로 H.264 비트스트림을 변환합니다.
ITU-T H.264 사양의 부록 B에 정의됨).
이것은 일부 스트리밍 형식, 일반적으로 MPEG-2 전송 스트림 형식에 필요합니다.
("mpegt").
예를 들어 H.4 스트림을 포함하는 MP264 파일을 다음을 사용하여 mpegts 형식으로 리먹싱하려면 ffmpeg,
다음 명령을 사용할 수 있습니다.
ffmpeg -i INPUT.mp4 -코덱 복사 -bsf:v h264_mp4toannexb OUTPUT.ts
imxdump
MOV에 맞추고 Final Cut Pro 디코더에서 사용할 수 있도록 비트스트림을 수정합니다. 이것
필터는 mpeg2video 코덱에만 적용되며 Final Cut Pro 7에는 필요하지 않을 수 있습니다.
적절한 최신 -태그:v.
예를 들어 30MB/초 NTSC IMX를 MOV로 리먹싱하려면 다음을 수행합니다.
ffmpeg -i input.mxf -c 복사 -bsf:v imxdump -tag:v mx3n output.mov
mjpeg2jpeg
MJPEG/AVI1 패킷을 전체 JPEG/JFIF 패킷으로 변환합니다.
MJPEG는 각 비디오 프레임이 본질적으로 JPEG 이미지인 비디오 코덱입니다. NS
개별 프레임은 손실 없이 추출될 수 있습니다.
ffmpeg -i ../some_mjpeg.avi -c:v 복사 프레임_%d.jpg
불행히도 이러한 청크는 DHT 세그먼트가 없기 때문에 불완전한 JPEG 이미지입니다.
디코딩에 필요합니다. 인용
<http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
Avery Lee는 2001년 rec.video.desktop 뉴스 그룹에서 "MJPEG 또는
최소한 MJPG fourcc가 있는 AVI의 MJPEG는 고정된 JPEG로 제한됩니다.
*생략* -- 허프만 테이블. JPEG는 YCbCr 색상 공간이어야 하고 4:2:2여야 하며
산술 또는 프로그레시브가 아닌 기본 Huffman 인코딩을 사용해야 합니다. . . . 당신은 정말로 할 수 있습니다
MJPEG 프레임을 추출하고 일반 JPEG 디코더로 디코딩하지만
DHT 세그먼트를 앞에 추가합니다. 그렇지 않으면 디코더가 압축 해제 방법을 알지 못합니다.
자료. 필요한 정확한 표는 OpenDML 사양에 나와 있습니다."
이 비트스트림 필터는 MJPEG 스트림에서 추출된 프레임의 헤더를 패치합니다.
(AVI1 헤더 ID를 전달하고 DHT 세그먼트가 없음) 정규화된 JPEG 생성
이미지.
ffmpeg -i mjpeg-movie.avi -c:v 복사 -bsf:v mjpeg2jpeg 프레임_%d.jpg
exiftran -i -9 프레임*.jpg
ffmpeg -i frame_%d.jpg -c:v 복사 rotated.avi
mjpega_dump_header
movsub
mp3_header_decompress
mpeg4_unpack_bframes
DivX 스타일로 포장된 B-프레임의 포장을 풉니다.
DivX 스타일의 패킹된 B-프레임은 유효한 MPEG-4가 아니며 손상된
Windows 하위 시스템용 비디오. 그들은 더 많은 공간을 사용하고 사소한 AV 동기화 문제를 일으킬 수 있습니다.
디코딩할 더 많은 CPU 성능(플레이어에 보상할 디코딩된 픽처 큐가 있는 경우 제외
패킷 스타일당 2,0,2,0 프레임) 표준 컨테이너에 복사하면 문제가 발생합니다.
MPEG-4 디코더가 디코딩할 수 없기 때문에 mp4 또는 mpeg-ps/ts와 같습니다.
유효한 MPEG-4가 아닙니다.
예를 들어 DivX 스타일의 압축 B 프레임이 있는 MPEG-4 스트림이 포함된 AVI 파일을 수정하려면
사용 ffmpeg, 다음 명령을 사용할 수 있습니다.
ffmpeg -i INPUT.avi - 코덱 복사 -bsf:v mpeg4_unpack_bframes OUTPUT.avi
소음
용기를 손상시키지 않고 패킷의 내용물을 손상시킵니다. 퍼징 또는
오류 복원력/은폐 테스트.
매개변수: 출력 바이트의 빈도와 관련된 값을 가진 숫자 문자열
수정됨. 따라서 0 이하의 값은 금지되며, 낮을수록
빈번한 바이트는 수정되며 1은 모든 바이트가 수정됨을 의미합니다.
ffmpeg -i INPUT -c 복사 -bsf 노이즈[=1] output.mkv
모든 바이트에 수정 사항을 적용합니다.
제거_추가
onworks.net 서비스를 사용하여 온라인에서 ffmpeg-bitstream-filters 사용