<p>As an adaption of kevmitch's answer, I went with</p>
<pre><code>ffmpeg  -i &quot;foo.mkv&quot; -vf stereo3d=sbs2l:ml -c:a copy &quot;bar.mp4&quot;
</code></pre>
<p>Notable difference: It's using <code>sbs2l</code> (instead of <em>sbsl2</em>) and just copies audio streams (works for me). <a href="http://underpop.online.fr/f/ffmpeg/help/stereo3d.htm.gz" rel="nofollow noreferrer">Further reading to stereo3d</a></p>
<p>Edit: To whom it may concern, in another case I experienced problems with the aspect ratio with the command above. This can be fixed by using something like this command (adapt resolution, setdar and aspect ratio)</p>
<pre><code>ffmpeg  -i &quot;foo.mkv&quot; -vf stereo3d=sbs2l:ml,scale=1920x816,setdar=21:9 -aspect 21:9 -c:a copy &quot;bar.mp4&quot;
</code></pre>

CC BY-SA 4.0
2022-03-18T20:03:38.047Z
2023-12-09T23:20:29.010Z
2023-12-09T23:20:29.010Z
Mister Henson
<p>I found a reference on this forum. 
<a href="http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html" rel="nofollow noreferrer">http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html</a></p>

<pre><code>ffmpeg -i './a3dmovie.mp4'  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" -y ./a2dmovie.mp4
</code></pre>

<p>The important part is the <code>-vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"</code></p>

<p>It essentially halves the output and rescales as appropriate for the 3d video.</p>

<p>I found this is also useful to test and check the output</p>

<pre><code>ffplay -i ./some3dmovie.mp4  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" 
</code></pre>

<p>You can move the index to the front of the file as follows
<code>-movflags faststart</code></p>

CC BY-SA 3.0
2017-04-02T19:56:18.113Z
2017-04-02T19:56:18.113Z
nelaaro
<p>While you might be able to achieve this by manually using ffmpeg's <a href="https://ffmpeg.org/ffmpeg-filters.html#crop" rel="noreferrer">crop</a> filter, the <a href="https://ffmpeg.org/ffmpeg-filters.html#stereo3d" rel="noreferrer">stereo3d filter</a> is designed specifically for this purpose. You didn't specify the exact 3d format you have. There are several possibilities as documented at the the stereo3d link above. Assuming that <code>input.mkv</code> is the relatively common sbsl (side-by-side left eye on left), </p>

<pre><code>ffmpeg -i input.mkv -vf stereo3d=sbsl:ml -metadata:s:v:0 stereo_mode="mono" output.mkv
</code></pre>

<p>will result in a 2d (left eye only) <code>output.mkv</code>. I believe the reason <code>-metadata:s:v:0 stereo_mode="mono"</code> is required to remove the stereo tag is because the metadata isn't piped through the filter system, and ffmpeg otherwise tries to duplicate the metadata of the original. If you don't do this, some players may think your 2d result is still 3d and do weird things. </p>

<p>If you find that the result has the wrong aspect ratio, you can experiment with using <code>stereo3d=sbsl2:ml</code> instead which treats the input as half width side-by-side. If all else fails, you can set the correct aspect with <code>-aspect 16:9</code> (or whatever you know the correct aspect ratio to be).</p>

CC BY-SA 3.0
2017-10-03T01:00:16.130Z
Could you explain the stereo3d filter option you are using here? I understand from the ffmpeg documentation that sbsl means side by side parallel (left eye left, right eye right) but what does the :ml signify? I can't seem to locate that information.
Elder Geek
CC BY-SA 3.0
2017-10-03T21:51:07.693Z
The syntax is `stereo3d=<input-format>:<output-format>`. As per the linked documentation, `ml` means to output "mono output (left eye only)".
kevmitch
CC BY-SA 4.0
2018-07-25T18:08:14.020Z
I got errors attempting to use `-metadata:s:v:0 stereo_mode="mono"` with ffmpeg 2.8.14. It appears that the documentation may have changed since you wrote this answer. Simply removing the aforementioned switches allowed ffmpeg to continue without error. Note that you can avoid re-encoding the audio stream by utilizing the `-c:a copy` switch.
Elder Geek
CC BY-SA 3.0
2017-05-30T08:49:24.893Z
2017-05-30T08:49:24.893Z
kevmitch
<p>I am looking for a way to convert a 3d movie to a 2d movie.</p>

<p>I found a reference on this forum. 
<a href="http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html" rel="noreferrer">http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html</a></p>

<ffmpeg><3d><scale>
How to convert a 3D movie to 2D using ffmpeg
nelaaro
# How to convert a 3D movie to 2D using ffmpeg

(Asked by: username_0 on 2017-04-02)

I am looking for a way to convert a 3d movie to a 2d movie.

I found a reference on this forum.
<http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html>

**Tags:** ffmpeg, 3d, scale


---

## 3 answers

### Answer by username_2 on 2017-05-30. Score: 13 | Accepted answer

While you might be able to achieve this by manually using ffmpeg's crop filter, the stereo3d filter is designed specifically for this purpose. You didn't specify the exact 3d format you have. There are several possibilities as documented at the the stereo3d link above. Assuming that input.mkv is the relatively common sbsl (side-by-side left eye on left), 
ffmpeg -i input.mkv -vf stereo3d=sbsl:ml -metadata:s:v:0 stereo_mode="mono" output.mkv

will result in a 2d (left eye only) output.mkv. I believe the reason -metadata:s:v:0 stereo_mode="mono" is required to remove the stereo tag is because the metadata isn't piped through the filter system, and ffmpeg otherwise tries to duplicate the metadata of the original. If you don't do this, some players may think your 2d result is still 3d and do weird things. 
If you find that the result has the wrong aspect ratio, you can experiment with using stereo3d=sbsl2:ml instead which treats the input as half width side-by-side. If all else fails, you can set the correct aspect with -aspect 16:9 (or whatever you know the correct aspect ratio to be).

> **Comments:**
> **username_3**: Could you explain the stereo3d filter option you are using here? I understand from the ffmpeg documentation that sbsl means side by side parallel (left eye left, right eye right) but what does the :ml signify? I can't seem to locate that information.  
> **username_2**: The syntax is `stereo3d=<input-format>:<output-format>`. As per the linked documentation, `ml` means to output "mono output (left eye only)".  
> **username_3**: I got errors attempting to use `-metadata:s:v:0 stereo_mode="mono"` with ffmpeg 2.8.14. It appears that the documentation may have changed since you wrote this answer. Simply removing the aforementioned switches allowed ffmpeg to continue without error. Note that you can avoid re-encoding the audio stream by utilizing the `-c:a copy` switch.  

---

### Answer by username_1 on 2022-03-18. Score: 2

As an adaption of username_2's answer, I went with
ffmpeg  -i "foo.mkv" -vf stereo3d=sbs2l:ml -c:a copy "bar.mp4"

Notable difference: It's using sbs2l (instead of sbsl2) and just copies audio streams (works for me). Further reading to stereo3d
Edit: To whom it may concern, in another case I experienced problems with the aspect ratio with the command above. This can be fixed by using something like this command (adapt resolution, setdar and aspect ratio)
ffmpeg  -i "foo.mkv" -vf stereo3d=sbs2l:ml,scale=1920x816,setdar=21:9 -aspect 21:9 -c:a copy "bar.mp4"


---

### Answer by username_0 on 2017-04-02. Score: 2

I found a reference on this forum. 
http://www.ffmpeg-archive.org/How-to-re-encode-3d-video-to-2d-video-td4676271.html
ffmpeg -i './a3dmovie.mp4'  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" -y ./a2dmovie.mp4

The important part is the -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2"
It essentially halves the output and rescales as appropriate for the 3d video.
I found this is also useful to test and check the output
ffplay -i ./some3dmovie.mp4  -vf "crop=w=iw/2:h=ih:x=0:y=0,scale=w=2*iw:h=ih,setdar=2" 

You can move the index to the front of the file as follows
-movflags faststart


---

