I am using ffmpeg 3.3.4 for android. I am executing below simple command:

 ffmpeg -i input.mp4 -vf curves=vintage -c:a aac ouput.mp4


 ffmpeg -i input.mp4 -vf curves=vintage -c:a copy ouput.mp4

The resultant video is not playing in android default player and Exoplayer. I tried on windows using windows media player, it only plays sound but no video. Although VLC media player is playing it properly on android and windows. Any idea whats missing in the above command?

Output video metadata: https://www.metadata2go.com/result/e9f9b7db-0a91-4148-9073-1a1162f0c7f0

1 Answer 1


The curves filter converts the input to RGB coding but most video players require a specific YUV scheme.

So use,

ffmpeg -i input.mp4 -vf curves=vintage,format=yuv420p -c:a copy ouput.mp4
  • Its working. Now android default player can play the video after adding output format parameter. Btw what other formats are available and what impact they can have on outout? Jul 8, 2020 at 13:25
  • There are dozens of other formats but yuv420p is the only widely supported format.
    – Gyan
    Jul 8, 2020 at 16:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.