많은 오디오 및 비디오 플레이어가 있지만 많은 프로포즈를 위해 하나의 도구를 사용하고 싶습니다. 그래서 저는 ffplay를 오디오 및 비디오 플레이어로 사용하고 싶습니다.

하나의 파일을 재생하기위한 명령은 다음과 같습니다.

 ffplay path_to_audio_file.mp3  

하지만 목록을 재생하는 방법 오디오 파일 또는 동영상 목록?

사용하려고했습니다.

ffplay *.mp3 

하지만 성공하지 못하면 다음과 같은 오류가 발생합니다.

Argument "audiofileB.mp3" provided as input filename, but "audiofileA.mp3" was already specified. 

Answer

ffplay는 단일 입력 파일 만 지원하는 것으로 보이므로 입력 파일 목록을 반복하는 코드를 사용해야합니다. ); coreutils (shuf의 경우)를 격렬하게 가정하면 다음과 같습니다.

find musicdir -type f -name "*.mp3" | shuf | while read f; do ffplay -autoexit -- "$f"; done 

파일 이름에 공백이나 줄 바꿈이 있으면 당연히 끔찍하게 중단됩니다.

(현재 내 음악 플레이어는 상당히 유사합니다. find ~/music -type f -name "*.mp3" | mpg123 --shuffle -Z --list -)

댓글

  • 솔루션을 시도했는데 ' 거의 훌륭했지만 … 관련 문제가 있습니다. '이 문제가이 질문에서 해결되어야하는지 아니면 다른 질문에서 해결되어야하는지 잘 모르겠습니다. 문제 중 하나는 ffplay가 현재 노래 재생을 종료하지 않고 이러한 이유로 CTRL + c 키보드 조합을 사용하지 않을 때까지 현재 노래가 끝날 때 다음 노래로 이동하지 않는다는 것입니다.
  • @Scantlight the -autoexit 플래그가 해당 문제와 관련이있는 것 같습니다.
  • -autoexit가 해당 문제를 해결했습니다. 이제 -nodisp를 사용하여 해결할 수있는 또 다른 것이 있습니다. 그러면 파형 및 유사한 항목의 시각화가 비활성화됩니다. 이렇게하면 새 창을 만들고 현재 작업중인 응용 프로그램에서 포커스를 훔치는 것을 방지 할 수 있습니다 (매우 성가신 행동이었습니다). 성가신 동작을 해결하기위한 가능한 옵션으로 답변에이 옵션을 포함 하시겠습니까?

답변

Lazarus / FPC에서 FFplay GUI를 작성하는 동안이 스레드를 찾았습니다. 이미 삭제 된 파일 목록을 재생하고 다음 / 이전 파일로 건너 뛸 수 있지만 ffmpeg 프로세스를 종료하고 매번 새 파일을 만들어야했습니다. 전체 파일 목록을 재생하는 기능을 추가하려고했습니다. 지금까지 찾은 가장 간단한 해결 방법은 물론 -autoexit를 사용하고 다음 파스칼 코드로 재생 목록 파일을 만드는 것이 었습니다.

begin AssignFile(tfOut, C_FNAME); try rewrite(tfOut); for i:= 0 to Fichiers.Items.Count - 1 do if Fichiers.Selected[i] then begin writeln(tfOut, "file " + #39 + conv(Fichiers.Items[i]) + #39) end; CloseFile(tfOut); except on E: EInOutError do ShowMessage ("File error") end; end; 

그런 다음 다음과 같이 읽으십시오.

"ffplay -f concat -safe 0 -i flist.txt -autoexit" 

파일을 FFMPeg와 연결하는 데 사용하는 것과 동일한 구문입니다.

이제 적절한 추가 방법을 찾고 있습니다. 파일이 이미지 파일 인 경우 지연…

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다