[FFmpeg-trac] #11333(undetermined:closed): Incomplete conversion of certain Apple H.265 MOV "hstack"

FFmpeg trac at avcodec.org
Fri Dec 6 14:36:41 EET 2024


#11333: Incomplete conversion of certain Apple H.265 MOV "hstack"
-------------------------------------+-------------------------------------
             Reporter:  gegegegege   |                    Owner:  (none)
                 Type:  task         |                   Status:  closed
             Priority:  normal       |                Component:
                                     |  undetermined
              Version:  7.1          |               Resolution:  invalid
             Keywords:  hstack mov   |               Blocked By:
  hevc                               |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
Comment (by gegegegege):

 Instead, the following code can call ffmpeg in c# and convert the full
 video. I'd like to ask you two more questions. One problem is that the
 print progress is supposed to be a regular log, not an error log. Why
 can't I use OutputDataReceived to receive it? The second problem is: how
 can I use ffmpeg to recognize that a mov file is an Apple space video,
 because there are other mov files that are not Apple space videos. Thank
 you very much.
 {{{
    public static void Main(string[] args)
         {
             string ffmpegPath =
 @"F:\ffmpeg-7.1-essentials_build\bin\ffmpeg.exe";
             string inputFile = "D:\\gege\\_平面空间视频\\_苹果立体视频\\新
 建文件夹\\IMG_1940_1.MOV";
             string outputFile = "D:\\gege\\_平面空间视频\\_苹果立体视频\\
 新建文件夹\\IMG_1940_1UD.mp4";
             string arguments =
                 $"-v debug -hide_banner -nostdin -nostats -i
 \"{inputFile}\" -filter_complex \"[0:v:view:0][0:v:view:1]hstack\"
 -c:v hevc -tag:v hvc1 \"{outputFile}\"";

             try
             {
                 using (Process myProcess = new Process())
                 {
                     myProcess.StartInfo.UseShellExecute = false;
                     myProcess.StartInfo.FileName = ffmpegPath;
                     myProcess.StartInfo.Arguments = arguments;
                     myProcess.StartInfo.CreateNoWindow = true;
                     myProcess.StartInfo.RedirectStandardError = true;
                     myProcess.StartInfo.RedirectStandardOutput = true;
                     myProcess.Start();

                     myProcess.ErrorDataReceived += delegate(object sender,
 DataReceivedEventArgs eventArgs) { Console.WriteLine(eventArgs.Data); };
                     //myProcess.OutputDataReceived += delegate(object
 sender, DataReceivedEventArgs eventArgs) {
 Console.WriteLine(eventArgs.Data); };  //inVain
                     myProcess.BeginErrorReadLine();

                     myProcess.WaitForExit();

                 }
             }
             catch (Exception e)
             {
                 Console.WriteLine(e.Message);
             }
         }
 }}}
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/11333#comment:6>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list