ffmpeg 라이브 입력 MP4 오류


1

현재 마이크와 웹캠이 컴퓨터에 연결되어 있습니다. CentOS 6.3에서 ffmpeg를 실행 중입니다.

오디오없이 비디오를 녹화하려고 할 때 :

ffmpeg -y -f video4linux2 -t 15 -s 640x480 -r 25 -i /dev/video0 /home/irdb/Desktop/out2.mp4

그것은 완벽하게 실행되며 나는 좋은 비디오를 얻을. 그러나 내가 포함 된 오디오로 실행하려고하면 :

ffmpeg -y -f video4linux2 -t 15 -s 640x480 -r 25 -i /dev/video0 -f alsa -ar 22050 -ab 64k -ac 2 -i default /home/irdb/Desktop/out2.mp4

오류가 발생하여 인쇄합니다.

[NULL @ 0x1e33fc0] Codec is experimental but experimental codecs are not enabled,      see -strict -2
Output #0, mp4, to '/home/irdb/Desktop/out2.mp4':
Stream #0:0: Video: h264, yuv420p, 640x480, q=-1--1, 90k tbn, 25 tbc
Stream #0:1: Audio: none, 22050 Hz, 2 channels, flt, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> libx264)
Stream #1:0 -> #0:1 (pcm_s16le -> aac)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such    as bit_rate, rate, width or height

이것은 첫 번째 오류와 관련이 있다고 가정합니다. mpg와 같은 것을 사용할 때와 마찬가지로 잘 작동합니다. 그러나 나는이 라이브 스트리밍을 계획하고 있으며 모든 브라우저 (플래시 대체 기능이있는 Firefox)에서 거의 지원되는 mp4 형식을 원합니다.

누구든지 오디오를 추가 처리없이 작동시키는 방법을 알고 있습니까 (라이브로 스트리밍하고 결국 파일에 쓰지 않기를 원함).

답변:


5

짧은 답변: 더하다 -strict experimental (또는 별칭 -strict -2 )를 출력 파일 이름 앞에 두십시오.

더 긴 대답 : mp4 일반적으로 H.264 비디오 및 AAC 오디오가 포함되어 있습니다. H.264 비디오의 경우 GPL 라이센스를 사용하여 인코딩해야합니다. libx264 (당신이하고있는).

ffmpeg와 함께 사용할 수있는 여러 개의 AAC 인코더가 있습니다. 네이티브 ffmpeg AAC 엔코더가 있지만 실험적이며 품질이 다른 AAC 엔코더만큼 좋지 않습니다. 그만큼 -strict experimental 옵션을 사용하여 활성화 할 수 있습니다. 프라운호퍼 인코더 libfdk_aac 최고 품질입니다. 2012 년에 사용자 정의 카피 레프트 라이센스에 따라 Android Jelly Bean 소스 코드 릴리스의 일부로 출시되었습니다. GPL은 GPL 라이센스 코드가 포함 된 바이너리 만 재배포 할 수 있기 때문에 전체 작업을 GPL로 릴리스하면 사용자가 직접 컴파일하지 않으면 ffmpeg가이 인코더로 구성되지 않은 것일 수 있습니다.

ffmpeg에서 자세한 내용을 찾을 수 있습니다. AAC 인코딩 가이드 .


정말 고마워! 잘 했어. 오디오에서 딸깍하는 소리가납니다. 품질 수준에 따라 변경되지 않기 때문에 코덱인지 여부는 확실하지 않습니다. 그러나 새로운 ACC 코덱을 다시 컴파일 해 보겠습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.