Answers.Body: <p>The <code>curves</code> filter converts the input to RGB coding but most video players require a specific YUV scheme.</p>
  <p>So use,</p>
  <pre><code>ffmpeg -i input.mp4 -vf curves=vintage,format=yuv420p -c:a copy ouput.mp4
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-08T13:25:35.897Z
Answers.Text: 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?
Answers.UserDisplayName: Khawar Raza
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-08T16:29:43.067Z
Answers.Text: There are dozens of other formats but `yuv420p` is the only widely supported format.
Answers.UserDisplayName: Gyan
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-07-08T11:31:02.263Z
Answers.LastActivityDate: 2020-07-08T11:31:02.263Z
Answers.UserDisplayName: Gyan
Body: <p>I am using ffmpeg 3.3.4 for android. I am executing below simple command:</p>
  <pre><code> ffmpeg -i input.mp4 -vf curves=vintage -c:a aac ouput.mp4
  </code></pre>
  <p>and</p>
  <pre><code> ffmpeg -i input.mp4 -vf curves=vintage -c:a copy ouput.mp4
  </code></pre>
  <p>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?</p>
  <p>Output video metadata:
  <a href="https://www.metadata2go.com/result/e9f9b7db-0a91-4148-9073-1a1162f0c7f0" rel="nofollow noreferrer">https://www.metadata2go.com/result/e9f9b7db-0a91-4148-9073-1a1162f0c7f0</a></p>
  
Tags: <ffmpeg>
Title: Video not playing properly after ffmpeg vintage effect applied
UserDisplayName: Khawar Raza
ThreadText: # Video not playing properly after ffmpeg vintage effect applied
  
  (Asked by: username_0 on 2020-07-08)
  
  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
  
  ```
  
  and
  
  ```
   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>
  
  **Tags:** ffmpeg
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-07-08. Score: 2 | Accepted answer
  
  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
  
  ```
  
  > **Comments:**
  > **username_0**: 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?  
  > **username_1**: There are dozens of other formats but `yuv420p` is the only widely supported format.  
  
  ---
  
  