wideo MP4 dla gwiazdki z ulaw jako audio i h263 dla wideo

1

Scenariusz: chcę odtworzyć plik wideo na gwiazdce. mój softphone obsługuje tylko ulaw / h263 odpowiednio dla audio i wideo. Dlatego zezwalam na oba formaty w pliku sip.conf i oczekuję, że będzie działać. Używana przeze mnie wersja gwiazdki to 11.7.

Używam mp4_play z app_mp4 do odtwarzania plików z podpowiedziami mp4, które są konwertowane za pomocą mp4creator.

Rozwiązanie:

Staram się utworzyć / przekonwertować plik AV za pomocą ffmpeg, aby sformatować pcm_mulaw i skopiować wideo, które jest już w wersji h263 za pomocą polecenia

avconv -i input.3gp  -c:a pcm_mulaw  -c:v copy output.mp4

Otrzymuję ten komunikat o błędzie:

Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted

Pytania są następujące:

1- Czy zmierzam we właściwym kierunku, jeśli chodzi o odtwarzanie wideo na gwiazdce dla tego konkretnego telefonu programowego?

2 - czy można używać ffmpeg w taki sposób, a zawartość jest nadal odtwarzana za pomocą odtwarzaczy multimedialnych?

3 - jaką inną alternatywę muszę osiągnąć to samo zadanie. i jak mogę uniknąć tego błędu, który mam

pozdrowienia

Jamil Farooq
źródło
upraszczając, jak mieć prawidłowy plik audio / wideo mp4 z ulaw audio i wideo h263
Jamil Farooq
Nie rozumiem, dlaczego mówisz „ffmpeg”, kiedy używasz avconv.
llogan
po prostu przeczytaj swój post na temat różnicy. Myślałem, że oba są takie same. poczucie winy
Jamil Farooq,
avconv nie jest ffmpeg
Sarge Borsch
@ user3392156 Nie powinieneś czuć się winny: avconvprogramiści nie ułatwili użytkownikom poznania różnicy. Przez ffmpegpewien czas podawali podróbkę z mylącym komunikatem, a nawet nazwa Libav była już i historycznie używana przez FFmpeg jako nazwa zbiorcza w odniesieniu do ich bibliotek (libavcodec, libavformat itp.).
llogan

Odpowiedzi:

1

Czego nie możesz zrobić

Nie można umieścić audio pcm_mulaw lub wideo H.263 w kontenerze MP4.

Błąd, który sam podałeś, na ogół nie ma charakteru informacyjnego, ale zawsze towarzyszy mu rzeczywisty błąd (przynajmniej dla ffmpeg, nie jestem pewien avconv). Prawdopodobnie coś takiego:

Could not find tag for codec h263 (or pcm_mulaw) in stream #0,
codec not currently supported in container

Jest to jeden z powodów, dla których zawsze należy dołączać pełne dane wyjściowe konsoli podczas napotkania problemów.

Co możesz zrobić

Możesz albo:

  • zmień kontener formatu wyjściowego:

    ffmpeg -i input.3gp -c copy output.mkv
    
  • lub ponownie zakoduj do czegoś akceptowalnego dla MP4, takiego jak wideo H.264 i audio AAC.

    ffmpeg -i input.3gp -c:v libx264 -c:a aac -strict experimental output.mp4
    

Nic nie wiem o Asterisk, więc nie wiem, co byłoby dla Ciebie najlepsze, ale to przynajmniej rozwiąże problem, którego doświadczasz.

Wyjść ze starym

Polecam użyć najnowszej wersji ffmpeg. avconvUżywasz może być bardzo stary, rozwój FFmpeg jest bardzo aktywny i ffmpegma więcej funkcji. Kompilacje statyczne są łatwe: wystarczy pobrać, wyodrębnić i uruchomić. Zobacz stronę pobierania FFmpeg, aby uzyskać opcje dla systemów Linux, OS X i Windows.

Llogan
źródło
Cóż, muszę być wybiórczy zarówno dla kodeka audio, jak i wideo, aby być kompatybilnym z Asterisk. Chcesz również wiedzieć, czy nie mogę mieć dwóch kodeków w kontenerze MP4, czy ograniczenie jest określone przez ffmpeg, czy też przez MP4 według projektu nie możesz mieć tych dwóch kodeków razem? Właściwie chciałem mieć podpowiedzi z dwoma kodekami. ale avconv nie udało mi się wyprodukować takiego z poprawnym ładunkiem do przeczytania. Nie wiem, czy to też problem z ffmpeg. Użyłem MP4creatora do podpowiedzi i zadziałało.
Jamil Farooq
@ user3392156 Nie wiem, czy H.263 i Mulaw są określone jako obsługiwane przez MP4, czy nie, ale ffmpegnie zrobię tego i nigdy nie widziałem żadnych przykładowych plików zawierających taką kombinację. Nie jestem pewien, co rozumiesz przez „podpowiedź”, ale zakładam, że chcesz przenieść moovatom na początek pliku. Możesz to zrobić za ffmpegpomocą -movflags +faststart.
llogan
podpowiedzi wideo w avconv są dodawane przy użyciu, -movflags rtphintale gdy użyłem, że nie dodaje ładunku H263 ani żadnego innego
Jamil Farooq 27'15
0

Znalazłem rozwiązanie tego problemu i myślę, że powinienem je opublikować, ponieważ rozwiązanie jest dostępne, ale chyba nie bardzo dobrze się rozprzestrzenia.

http://downloads.i6net.com/misc/video_tools/debian/ zapewnia liczbę zasobów w tym samym celu.

  • Użyłem ffmpeg / avconv do konwersji h264 na h263p

    avconv -i ../big_buck_bunny_240p_50mb.mp4 -c: v h263 -vf scale = 176: 144 -an /tmp/sample-1.3gp

  • Dodano informacje o ścieżce w pliku przy użyciu mp4creator

    mp4creator -hint = 1 /tmp/sample-1.3gp

  • użył ffmpeg / avconv do konwersji ścieżki audio na ulaw przy użyciu

    avconv -y -i ../big_buck_bunny_240p_50mb.mp4 -acodec pcm_mulaw -ar 8000 -ac 1 -f mulaw /tmp/convert.mulaw

  • i użył pcm2mp4 do konwersji uzyskanego powyżej pliku mulaw do 3gp. dodaje to również informacje o ścieżce do ścieżki audio

    pcm2mp4 /tmp/convert.mulaw /tmp/sample-1.3gp

chciałby również wiedzieć, dlaczego ffmpeg nie zapewnia tej konwersji.

Jamil Farooq
źródło
Zapewnienie konkretnej konwersji? Wyświetlane są cztery polecenia za pomocą trzech różnych narzędzi. Co chcesz ffmpegrobić Nie używaj też terminu „ffmpeg / avconv”. Nie są takie same, a to tylko powoduje zamieszanie. Na przykład wspominasz „ffmpeg / avconv”, ale używasz avconv, a następnie pytasz, dlaczego ffmpeg nie robi czegoś, co powoduje, że tak naprawdę nie podążam za twoim pytaniem.
llogan
@ LordNeckbeard potrzebne były dwie rzeczy, aby uruchomić plik na gwiazdce, który według mojej wiedzy jest nieobecny w avconv (a także w ffmpeg proszę popraw mnie, jeśli się mylę) 1) dodaj ścieżkę podpowiedzi do ścieżek audio / wideo mp4 / 3gp, które zostały osiągnięte przez mp4creator . 2) aby dodać ścieżkę audio pcm_mulaw do pliku mp4, co zostało osiągnięte poprzez pcm2mp4. także wynikowy plik mp4 był czytelny przez libmp4v2, co sprawia, że ​​uważam, że całkowicie poprawne jest posiadanie kodeków ulaw i h263 w jednym kontenerze mp4 w przeciwieństwie do ffmpeg (jak sugerowałeś ffmpeg nie zrobiłby tego) i avconv (jak zauważyłem, nie pozwala to ).
Jamil Farooq,
obecnie nie używam ffmpeg. ale eksploracja innych zasobów online sprawia, że ​​myślę, że nawet ffmpeg nie ułatwiłby takiej konwersji (powyżej dwóch punktów, o których wspomniałem). Byłbym szczęśliwy wiedząc, że się mylę.
Jamil Farooq,
również, jak wspomniałem wcześniej, avconv i ffmpeg przewidują dodawanie ścieżek podpowiedzi (pierwszy z dwóch wymagań), -movflags rtphintale nie dodały prawidłowego ładunku do ścieżek podpowiedzi z powodów, których nie znam lub prawdopodobnie nie znam poprawnego użycia.
Jamil Farooq,