컴퓨터 오디오 선택

컴퓨터 오디오 선택

나는 이 스크립트를 사용하고 있습니다:http://www.thegameengine.org/miscellaneous/streaming-twitch-tv-ubuntu/Twitch로 스트리밍합니다. 작동하지만 마이크를 스트리밍하고 싶지 않고 컴퓨터 오디오만 스트리밍하고 싶습니다. 이를 달성하려면 스크립트를 어떻게 변경해야 합니까?

답변1

컴퓨터 오디오 선택

펄스오디오

이는 PulseAudio 및 pavucontrol. 에서HOWTO: Linux에서 적절한 스크린캐스팅:

설치하다 pavucontrol. 로 녹음을 시작하세요 ffmpeg. 시작 pavucontrol. "녹음" 탭으로 이동하면 ffmpeg 목록이 표시됩니다. 오디오 캡처를 "내부 오디오 아날로그 스테레오"에서 "내부 오디오 아날로그 스테레오 모니터"로 변경합니다. 이제 마이크 대신 시스템 및 애플리케이션 오디오를 녹음해야 합니다.

이 설정은 기억됩니다. 다음에 을(를) 사용하여 캡처하려고 하면 ffmpeg시스템 오디오 녹음이 자동으로 시작됩니다. 이를 되돌리려면 pavucontrol다시 사용하여 마이크 입력으로 다시 변경하세요.

알사

또는 오디오 시스템이 종종 다음과 같은 라벨이 붙은 루프백 장치를 지원하는 경우 ALSA는 시스템 오디오를 캡처할 수 있습니다.스테레오 믹스,웨이브 아웃 믹스,모노 믹스, 또는당신이 듣는 것. alsamixer이 중 하나가 있는지 확인하려면 확인하십시오 .요즘 하드웨어 루프백은 흔하지 않습니다.. 그런 다음 참조하십시오.FFmpeg Wiki: ALSA로 오디오 캡처시스템이 이 기능을 지원하는 경우 올바른 구문을 확인하세요.

그렇지 않으면 ALSA를 사용하여 소프트웨어 루프백을 만들 수 있다고 생각합니다. 그러나 제가 틀렸을 수도 있고 이에 대한 경험이 없을 수도 있습니다.


형편없는 스크립트

ffmpeg끔찍하고 반복되는 스크립트의 명령에는 몇 가지 문제가 있습니다 .

  • -preset대신에 사용해야합니다-vpre
  • -qscalelibx264에서는 무시됩니다( -crf또는 사용 -b:v).
  • 사진 그룹이 설정되지 않았습니다. ( 사용 -g)
  • VBV를 사용해야 합니다( -maxrate및 사용 -bufsize).
  • 출력은 호환 가능한 크로마 서브샘플링 방식을 사용하지 않을 수 있습니다(사용 -pix_fmt yuv420p).
  • x11grab 입력은 을 사용해야 -framerate합니다.-r
  • -threads 6임의의 숫자인 것 같고 모든 사람이 동일한 하드웨어를 사용하는 것은 아닙니다. 기본값을 사용하거나(제거하여 -threads"탐욕적"임) 만족스러운 속도로 인코딩할 수 있으면서도 녹음 중인 다른 작업을 수행하는 데 충분한 주스를 허용하는 적절한 값을 설정해야 합니다.

대신 명령은 다음과 같아야 합니다.

ffmpeg \
-f alsa -ac 2 -i "$INAUD" \
-f x11grab -video_size "$INRES" -framerate "$FPS" -i :0.0 \
-vcodec libx264 -s "$OUTRES" -preset "$QUAL" -maxrate 1000k -bufsize 2000k -g 50 -pix_fmt yuv420p \
-acodec libmp3lame -ar 44100 -b:a 128k \
-f flv "$STREAM_URL"

메모:-maxrate, -bufsize, -g및 에 대한 예시 값을 맹목적으로 사용하지 마십시오 -b:a. 에 설명된 대로 필요에 따라 이를 조정해야 합니다.FFmpeg를 사용한 스트리밍 사이트 인코딩. 또한 참조하십시오FFmpeg H.264 비디오 인코딩 가이드.

관련 정보